import type { AudioClip } from "./AudioClip";
import type { AudioContextLike } from "./AudioContextManager";
export type AudioSourceState = "idle" | "playing" | "paused" | "stopped";
export interface AudioSourceOptions {
    readonly context: AudioContextLike;
    readonly destination?: AudioNode;
    readonly clip?: AudioClip;
    readonly loop?: boolean;
    readonly volume?: number;
}
export declare class AudioSource {
    private readonly options;
    clip?: AudioClip;
    loop: boolean;
    readonly gain: GainNode;
    private stateRef;
    private node?;
    constructor(options: AudioSourceOptions);
    get state(): AudioSourceState;
    play(when?: number): void;
    stop(when?: number): void;
    setVolume(value: number): void;
    dispose(): void;
}
//# sourceMappingURL=AudioSource.d.ts.map