import '../../../assert/js/assert.js';
import '../../../globals.js';
import SoundGenerator, { SoundGeneratorOptions } from './SoundGenerator.js';
type SelfOptions = {
    noiseType?: 'pink' | 'white' | 'brown';
    lowPassCutoffFrequency?: number | null;
    highPassCutoffFrequency?: number | null;
    centerFrequency?: number | null;
    qFactor?: number;
    lfoInitiallyEnabled?: boolean;
    lfoInitialFrequency?: number;
    lfoInitialDepth?: number;
    lfoType?: OscillatorType;
};
export type NoiseGeneratorOptions = SelfOptions & SoundGeneratorOptions;
declare class NoiseGenerator extends SoundGenerator {
    private readonly bandPassFilter;
    private readonly noiseBuffer;
    private noiseSource;
    private readonly lfo;
    private readonly lfoAttenuatorGainNode;
    private readonly lfoControlledGainNode;
    private readonly noiseSourceConnectionPoint;
    private _isPlaying;
    private timeOfDeferredStartRequest;
    private readonly audioContextStateChangeListener;
    constructor(providedOptions?: NoiseGeneratorOptions);
    /**
     * Get a value that indicates whether noise is currently being played.
     */
    get isPlaying(): boolean;
    /**
     * Start the noise source.
     * @param [delay] - optional delay for when to start the noise source, in seconds
     */
    start(delay?: number): void;
    /**
     * Stop the noise source.
     * @param [time] - optional audio context time at which this should be stopped
     */
    stop(time?: number): void;
    /**
     * Set the frequency of the low frequency amplitude modulator (LFO).
     */
    setLfoFrequency(frequency: number): void;
    /**
     * Set the depth of the LFO modulator.
     * @param depth - depth value from 0 (no modulation) to 1 (max modulation)
     */
    setLfoDepth(depth: number): void;
    /**
     * Turn the low frequency amplitude modulation on/off.
     */
    setLfoEnabled(enabled: boolean): void;
    /**
     * set the Q value for the band pass filter, assumes that noise generator was created with this filter enabled
     */
    setBandpassFilterCenterFrequency(frequency: number, timeConstant?: number): void;
}
export default NoiseGenerator;
//# sourceMappingURL=NoiseGenerator.d.ts.map