import type { FormatConfig } from "./connection.js"; import type { AudioWorkletConfig } from "../BaseConversation.js"; import type { OutputController, OutputDeviceConfig } from "../OutputController.js"; export type OutputConfig = OutputDeviceConfig; export type OutputAudioEvent = { audio_base_64: string; }; export type OutputListener = (event: OutputAudioEvent) => void; export type OutputEventTarget = { addListener(listener: OutputListener): void; removeListener(listener: OutputListener): void; }; export type PlaybackStateEvent = MessageEvent<{ type: "process"; finished: boolean; }>; export type PlaybackListener = (event: PlaybackStateEvent) => void; export type PlaybackEventTarget = { addListener(listener: PlaybackListener): void; removeListener(listener: PlaybackListener): void; }; export declare class MediaDeviceOutput implements OutputController, PlaybackEventTarget { private readonly context; private readonly analyser; private readonly gain; private readonly worklet; private readonly audioElement; static create({ sampleRate, format, outputDeviceId, workletPaths, libsampleratePath, }: FormatConfig & OutputConfig & AudioWorkletConfig): Promise; private volume; private interrupted; private interruptTimeout; private readonly volumeProvider; private constructor(); getAnalyser(): AnalyserNode; getVolume(): number; getByteFrequencyData(buffer: Uint8Array): void; addListener(listener: PlaybackListener): void; removeListener(listener: PlaybackListener): void; setVolume(volume: number): void; playAudio(chunk: ArrayBuffer): void; interrupt(resetDuration?: number): void; setDevice(config?: Partial & OutputDeviceConfig): Promise; close(): Promise; } //# sourceMappingURL=output.d.ts.map