/// <reference types="react" />
import * as Tone from 'tone';
import type { EnvelopeData, EnvelopeLimits } from '../components/controller/Envelope';
export interface UseEnvelopeProps {
    data: EnvelopeData;
    limits?: EnvelopeLimits;
}
export declare const useEnvelope: (props: UseEnvelopeProps) => {
    init: () => void;
    data: {
        delay?: number | undefined;
        attack: number;
        decay: number;
        hold?: number | undefined;
        sustain: number;
        release: number;
    };
    envelope: import("react").MutableRefObject<Tone.Envelope | null>;
    limits: EnvelopeLimits;
    setAttack: import("react").Dispatch<import("react").SetStateAction<number>>;
    setDecay: import("react").Dispatch<import("react").SetStateAction<number>>;
    setSustain: import("react").Dispatch<import("react").SetStateAction<number>>;
    setRelease: import("react").Dispatch<import("react").SetStateAction<number>>;
    setDelay: import("react").Dispatch<import("react").SetStateAction<number | undefined>>;
    setHold: import("react").Dispatch<import("react").SetStateAction<number | undefined>>;
};
