import type Context from '../Context'; import type Timeline from '../Timeline'; import Source, { Src } from '../Source'; import Container, { ContainerProps } from './Container'; export interface PlayableProps extends ContainerProps { src: Src; gain?: number; load?: boolean; } export default abstract class Playable extends Container { private readonly autoLoad; private readonly gain; private sources; protected buffer: AudioBuffer; protected context: Context; readonly src: Src; constructor({ src, gain, load, ...rest }: PlayableProps); load(): Promise; protected createSource(): Source; bindTimeline(timeline: Timeline): void; destroy(): void; }