import { Bus } from '../api/bus' ; import { Interrupt } from '../api/interrupt' ; import { uint16 , uint8 } from './types' ; export interface Channel { readonly volume : uint8 ; isEnabled : boolean ; lengthCounter : uint8 ; tick ( ) : void ; envelope ( ) : void ; countLinear ( ) : void ; countLength ( ) : void ; sweep ( ) : void ; cpuWrite ( addr , data ) : void ; } export interface DMC { readonly volume : uint8 ; isEnabled : boolean ; cpuBus : Bus ; bytesRemaining : number ; interrupt : Interrupt ; isInterrupted : boolean ; tick ( ) : void ; cpuWrite ( addr , data ) : void ; } export interface APU { tick ( ) : void ; cpuRead ( addr ) : uint8 ; cpuWrite ( addr , data ) : void ; }