import { ControlType, ParamController, BaseParamController } from './base-param-controller';
import { Envelope } from '../envelope';
export declare class OscillatorController extends BaseParamController implements ParamController {
    private oscillator;
    protected gainNode: GainNode;
    protected pannerNode: StereoPannerNode;
    private envelope?;
    constructor(oscillator: OscillatorNode, gainNode: GainNode, pannerNode: StereoPannerNode);
    /**
     * Sets the envelope to be applied during playback.
     * @param envelope - The Envelope instance to use for ADSR control
     */
    setEnvelope(envelope: Envelope): void;
    /**
     * Triggers the release phase of the envelope.
     * @param releaseTime - The audio context time to start the release phase
     */
    triggerRelease(releaseTime: number): void;
    updateAudioSource(oscillator: OscillatorNode): void;
    protected _update(type: ControlType, value: number): void;
    setValuesAtTimes(): void;
    private applyValues;
    private applyRampValues;
}
//# sourceMappingURL=oscillator-controller.d.ts.map