export type AudioContextState = "locked" | "running" | "suspended" | "closed";
export interface AudioContextLike {
    readonly state: AudioContextState | string;
    readonly destination: AudioNode;
    currentTime: number;
    resume(): Promise<void>;
    suspend(): Promise<void>;
    close(): Promise<void>;
    createGain(): GainNode;
    createBufferSource(): AudioBufferSourceNode;
    createPanner(): PannerNode;
    createBiquadFilter(): BiquadFilterNode;
    createConvolver(): ConvolverNode;
}
export interface AudioContextManagerOptions {
    readonly context?: AudioContextLike;
    readonly createContext?: () => AudioContextLike;
}
export declare class AudioContextManager {
    private readonly options;
    private contextRef?;
    private unlocked;
    constructor(options?: AudioContextManagerOptions);
    get context(): AudioContextLike;
    get state(): AudioContextState;
    unlock(): Promise<void>;
    suspend(): Promise<void>;
    resume(): Promise<void>;
    dispose(): Promise<void>;
}
//# sourceMappingURL=AudioContextManager.d.ts.map