/**
 * creates an envelope that can be given to synths
 *
 *
 */
import { TypedAudioNode } from './_Base';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { AudioBuilder, EnvelopeParamsType } from '../../../core/audio/AudioBuilder';
export declare const ENVELOPE_DEFAULTS: EnvelopeParamsType;
declare class EnvelopeAudioParamsConfig extends NodeParamsConfig {
    /** @param The amount of time it takes for the envelope to go from 0 to it's maximum value. */
    attack: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** The period of time after the attack that it takes for the envelope to fall to the sustain value. */
    decay: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** The percent of the maximum value that the envelope rests at until the release is triggered. */
    sustain: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** The amount of time after the release is triggered it takes to reach 0. */
    release: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
}
export declare class EnvelopeAudioNode extends TypedAudioNode<EnvelopeAudioParamsConfig> {
    paramsConfig: EnvelopeAudioParamsConfig;
    static type(): string;
    initializeNode(): void;
    cook(inputContents: AudioBuilder[]): void;
}
export {};
