export type WaveEnvelope = {
    audioBufferSourceNode?: AudioBufferSourceNode | null;
    target: AudioNode;
    when: number;
    duration: number;
    cancel: () => void;
    pitch: number;
    preset: WavePreset;
};
export type WaveZone = {
    keyRangeLow: number;
    keyRangeHigh: number;
    originalPitch: number;
    coarseTune: number;
    fineTune: number;
    loopStart: number;
    loopEnd: number;
    buffer?: AudioBuffer;
    sampleRate: number;
    delay?: number;
    ahdsr?: boolean | WaveAHDSR[];
    sample?: string;
    file?: string;
    sustain?: number;
};
export type WavePreset = {
    zones: WaveZone[];
};
export type WaveSlide = {
    when: number;
    delta: number;
};
export type WaveAHDSR = {
    duration: number;
    volume: number;
};
export type CachedPreset = {
    variableName: string;
    filePath: string;
};
export type NumPair = number[];
export type PresetInfo = {
    variable: string;
    url: string;
    title: string;
    pitch: number;
};
export type ChordQueue = {
    when: number;
    destination: AudioNode;
    preset: WavePreset;
    pitch: number;
    duration: number;
    volume?: number;
    slides?: WaveSlide[];
};
