/** Non-interleaved PCM audio. Every channel must contain the same number of frames. */ export interface AudioData { readonly sampleRate: number; readonly channels: Float32Array[]; } export type QualityPreset = "fast" | "balanced" | "high"; /** Named Signalsmith controls. Frequencies are expressed in Hz at the public API. */ export interface AdvancedSignalsmithOptions { /** Upper frequency where pitch mapping preserves more tonality. Zero disables the limit. */ readonly tonalityLimitHz?: number; /** Independent formant shift. Cannot be combined with formantScale. */ readonly formantSemitones?: number; /** Independent formant multiplier. Cannot be combined with formantSemitones. */ readonly formantScale?: number; /** Compensate the formants for the configured pitch shift. */ readonly formantCompensation?: boolean; /** Approximate fundamental frequency used for formant analysis. Zero enables detection. */ readonly formantBaseHz?: number; } export interface ProcessOptions extends AudioData { /** Output duration divided by input duration. Greater than one is slower/longer. */ readonly timeRatio?: number; /** Pitch multiplier. Two is one octave up; 0.5 is one octave down. */ readonly pitchScale?: number; /** Friendly alternative to pitchScale. Cannot be specified together with pitchScale. */ readonly pitchSemitones?: number; readonly quality?: QualityPreset; readonly advanced?: AdvancedSignalsmithOptions; } export interface StreamProcessorOptions { readonly sampleRate: number; readonly channels: number; readonly timeRatio?: number; readonly pitchScale?: number; readonly pitchSemitones?: number; readonly quality?: QualityPreset; readonly advanced?: AdvancedSignalsmithOptions; readonly maxBlockSize?: number; } export interface SignalsmithStretchStreamProcessor { process(channels: Float32Array[]): Float32Array[]; flush(): Float32Array[]; setTimeRatio(value: number): void; setPitchScale(value: number): void; setPitchSemitones(value: number): void; reset(): void; dispose(): void; readonly latencyFrames: number; readonly disposed: boolean; } export interface SignalsmithStretch { process(options: ProcessOptions): Promise; createStreamProcessor(options: StreamProcessorOptions): Promise; dispose(): void; readonly disposed: boolean; readonly version: string; } export interface CreateSignalsmithStretchOptions { readonly wasmUrl?: string | URL; readonly locateFile?: (path: string) => string; } //# sourceMappingURL=types.d.ts.map