declare class FifoSampleBuffer { private _vector; private _position; private _frameCount; constructor(); get vector(): Float32Array; get position(): number; get startIndex(): number; get frameCount(): number; get endIndex(): number; clear(): void; put(numFrames: number): void; putSamples(samples: Float32Array, position?: number, numFrames?: number): void; putBuffer(buffer: FifoSampleBuffer, position?: number, numFrames?: number): void; receive(numFrames?: number): void; receiveSamples(output: Float32Array, numFrames?: number): void; extract(output: Float32Array, position?: number, numFrames?: number): void; ensureCapacity(numFrames?: number): void; ensureAdditionalCapacity(numFrames?: number): void; rewind(): void; } interface IPipe { inputBuffer: FifoSampleBuffer | null; outputBuffer: FifoSampleBuffer | null; clear(): void; process?(): void; } declare class AbstractFifoSamplePipe implements IPipe { protected _inputBuffer: FifoSampleBuffer | null; protected _outputBuffer: FifoSampleBuffer | null; constructor(createBuffers: boolean); get inputBuffer(): FifoSampleBuffer | null; set inputBuffer(inputBuffer: FifoSampleBuffer | null); get outputBuffer(): FifoSampleBuffer | null; set outputBuffer(outputBuffer: FifoSampleBuffer | null); clear(): void; } declare class RateTransposer extends AbstractFifoSamplePipe { private _rate; private slopeCount; private prevSampleL; private prevSampleR; constructor(createBuffers: boolean); set rate(rate: number); reset(): void; clear(): void; clone(): RateTransposer; process(): void; transpose(numFrames?: number): number; } declare class FilterSupport { protected _pipe: IPipe; constructor(pipe: IPipe); get pipe(): IPipe; get inputBuffer(): FifoSampleBuffer | null; get outputBuffer(): FifoSampleBuffer | null; fillInputBuffer(_numFrames?: number): void; fillOutputBuffer(numFrames?: number): void; clear(): void; } interface AudioSource { extract(target: Float32Array, numFrames: number, position: number): number; } declare class SimpleFilter extends FilterSupport { private callback; private sourceSound; private historyBufferSize; private _sourcePosition; private outputBufferPosition; private _position; constructor(sourceSound: AudioSource, pipe: IPipe, callback?: () => void); get position(): number; set position(position: number); get sourcePosition(): number; set sourcePosition(sourcePosition: number); onEnd(): void; fillInputBuffer(numFrames?: number): void; extract(target: Float32Array, numFrames?: number): number; handleSampleData(event: { data: Float32Array; }): void; clear(): void; } declare class Stretch extends AbstractFifoSamplePipe { private _quickSeek; private midBuffer; private overlapLength; private autoSeqSetting; private autoSeekSetting; private _tempo; private sampleRate; private overlapMs; private sequenceMs; private seekWindowMs; private seekWindowLength; private seekLength; private nominalSkip; private skipFract; private sampleReq; private refMidBuffer; constructor(createBuffers: boolean); clear(): void; clearMidBuffer(): void; setParameters(sampleRate: number, sequenceMs: number, seekWindowMs: number, overlapMs: number): void; set tempo(newTempo: number); get tempo(): number; get inputChunkSize(): number; get outputChunkSize(): number; calculateOverlapLength(overlapInMsec?: number): void; checkLimits(x: number, mi: number, ma: number): number; calculateSequenceParameters(): void; set quickSeek(enable: boolean); clone(): Stretch; seekBestOverlapPosition(): number; seekBestOverlapPositionStereo(): number; seekBestOverlapPositionStereoQuick(): number; preCalculateCorrelationReferenceStereo(): void; calculateCrossCorrelationStereo(mixingPosition: number, compare: Float32Array): number; overlap(overlapPosition: number): void; overlapStereo(inputPosition: number): void; process(): void; } declare class SoundTouch implements IPipe { private transposer; private stretch; private _inputBuffer; private _intermediateBuffer; private _outputBuffer; private _rate; private _tempo; private virtualPitch; private virtualRate; private virtualTempo; constructor(); clear(): void; clone(): SoundTouch; get rate(): number; set rate(rate: number); set rateChange(rateChange: number); get tempo(): number; set tempo(tempo: number); set tempoChange(tempoChange: number); set pitch(pitch: number); set pitchOctaves(pitchOctaves: number); set pitchSemitones(pitchSemitones: number); get inputBuffer(): FifoSampleBuffer; get outputBuffer(): FifoSampleBuffer; calculateEffectiveRateAndTempo(): void; process(): void; } declare class WebAudioBufferSource implements AudioSource { private buffer; private _position; constructor(buffer: AudioBuffer); get dualChannel(): boolean; get position(): number; set position(value: number); extract(target: Float32Array, numFrames?: number, position?: number): number; } declare const getWebAudioNode: (context: AudioContext, filter: SimpleFilter, sourcePositionCallback?: (position: number) => void, bufferSize?: number) => ScriptProcessorNode; interface PlayEventDetail { timePlayed: number; formattedTimePlayed: string; percentagePlayed: number; } declare class PitchShifter { private _soundtouch; private _filter; _node: ScriptProcessorNode; timePlayed: number; sourcePosition: number; tempo: number; rate: number; duration: number; sampleRate: number; private listeners; constructor(context: AudioContext, buffer: AudioBuffer, bufferSize: number, onEnd?: () => void); get formattedDuration(): string; get formattedTimePlayed(): string; get percentagePlayed(): number; set percentagePlayed(perc: number); get node(): ScriptProcessorNode; set pitch(pitch: number); set pitchSemitones(semitone: number); connect(toNode: AudioNode): void; disconnect(): void; on(eventName: string, cb: (detail: PlayEventDetail) => void): void; off(eventName?: string | null): void; } export { AbstractFifoSamplePipe, PitchShifter, RateTransposer, SimpleFilter, SoundTouch, Stretch, WebAudioBufferSource, getWebAudioNode }; //# sourceMappingURL=soundtouch.d.ts.map