import type { Milliseconds } from "../../utils/semanticTypes"; import type { IAudioGraphPlugin, IAudioFader } from "../types"; interface VolumeFaderConfig { /** Длительность фейда в миллисекундах. */ readonly duration: Milliseconds; /** Пользовательская кривая, передаваемая напрямую в setValueCurveAtTime. Если не указана, используется косинусное сглаживание. */ readonly curve?: Float32Array; } /** * Плагин фейдера громкости — обёртка над GainNode, реализующая IAudioFader. * * Использует косинусную кривую сглаживания через setValueCurveAtTime * для плавных фейдов. GainNode фейда независим от master volume GainNode — * их значения перемножаются на стороне Web Audio API. * * По умолчанию: gain = 1 (единица — без ослабления). */ export declare class VolumeFaderPlugin implements IAudioGraphPlugin, IAudioFader { readonly id = "volume-fader"; private readonly _gainNode; private readonly _duration; private readonly _curve; private _fade; constructor(ctx: AudioContext, config: VolumeFaderConfig); get inputNode(): AudioNode; get outputNode(): AudioNode; get faded(): boolean; appear(): void; disappear(): void; pause(): void; resume(): void; cancel(): void; private _finishFade; private _startFade; private _buildEasingCurve; private _scheduleCurve; private _sampleIndex; } export {};