import type { IAudioGraph, IAudioGraphPlugin } from "./types"; /** * Конкретная реализация IAudioGraph. * * Архитектура: * * source₁ → [Chain₁] ─┐ * source₂ → [Chain₂] ─┼→ [masterGain] → ctx.destination * * Каждый источник получает собственную цепочку плагинов. * Общий master GainNode управляет общей выходной громкостью. */ export declare class AudioGraph implements IAudioGraph { private _ctx; private _masterGain; private readonly _connections; private _contextEnabled; private readonly _boundBeforeDisable; /** Доступна ли Web Audio API в текущем окружении. */ static isSupported(): boolean; get context(): AudioContext; get contextState(): AudioContextState; enableContext(): Promise; disableContext(): Promise; connectSource(element: HTMLMediaElement): Promise; disconnectSource(element: HTMLMediaElement): void; isSourceConnected(element: HTMLMediaElement): boolean; addPlugin(element: HTMLMediaElement, plugin: IAudioGraphPlugin): void; removePlugin(element: HTMLMediaElement, pluginId: string): void; getPlugins(element: HTMLMediaElement): readonly IAudioGraphPlugin[]; createAnalyser(element: HTMLMediaElement): AnalyserNode | null; setMasterVolume(volume: number): void; getMasterVolume(): number; dispose(): void; /** Лениво создаёт AudioContext и master gain. */ private ensureContext; }