import type { RateTransposerInterpolationStrategy, SampleBufferType, StretchParameters } from '@soundtouchjs/core'; /** * Options for `processOffline`. * * @remarks * All audio transform parameters are optional and default to their neutral values * (`pitch: 1.0`, `pitchSemitones: 0`, `playbackRate: 1.0`). */ export interface ProcessOfflineOptions { /** * The source audio buffer to process. */ input: AudioBuffer; /** * URL or path to the SoundTouch processor script, passed to `SoundTouchNode.register`. */ processorUrl: string | URL; /** * Pitch multiplier (1.0 = original pitch). * @defaultValue 1.0 */ pitch?: number; /** * Pitch shift in semitones, combined with `pitch`. * @defaultValue 0 */ pitchSemitones?: number; /** * Playback rate multiplier. Output length is scaled by `1 / playbackRate`. * @defaultValue 1.0 */ playbackRate?: number; /** * Interpolation strategy to use in the rate transposer. */ interpolationStrategy?: RateTransposerInterpolationStrategy; /** * WSOLA timing parameters to apply to the stretch stage. */ stretchParameters?: StretchParameters; /** * Internal sample buffer strategy. */ sampleBufferType?: SampleBufferType; } /** * Renders audio through SoundTouch processing in an `OfflineAudioContext`. * * @remarks * Creates an `OfflineAudioContext`, registers the processor module, builds the * audio graph, applies all transform parameters, and returns the rendered * `AudioBuffer`. The output length is estimated as * `ceil(input.length / playbackRate)` to account for tempo changes. * * @param options Processing options including the input buffer and processor URL. * @returns A Promise that resolves to the processed `AudioBuffer`. * * @example * ```ts * import { processOffline } from '@soundtouchjs/audio-worklet'; * * const processed = await processOffline({ * input: audioBuffer, * processorUrl: '/soundtouch-processor.js', * pitchSemitones: -3, * playbackRate: 1.2, * }); * ``` */ export declare function processOffline(options: ProcessOfflineOptions): Promise; //# sourceMappingURL=processOffline.d.ts.map