import { Buffer } from "node:buffer";
import type { Logger } from "pino";
import type { TurnDetectionProvider } from "../speech/turn-detection-provider.js";
export interface VoiceTurnControllerCallbacks {
    onSpeechStarted(): Promise<void>;
    onSpeechStopped(): Promise<void>;
    onError(error: Error): void;
}
export interface DetectedVoiceUtterance {
    pcm16: Buffer;
    sampleRate: number;
    format: string;
    startedAt: number;
    endedAt: number;
}
export interface VoiceUtteranceSink {
    submitUtterance(utterance: DetectedVoiceUtterance): Promise<void>;
}
export interface VoiceTurnController {
    start(): Promise<void>;
    stop(): Promise<void>;
    appendClientChunk(input: {
        audioBase64: string;
        format: string;
    }): Promise<void>;
}
export declare function createVoiceTurnController(params: {
    logger: Logger;
    turnDetection: TurnDetectionProvider;
    utteranceSink: VoiceUtteranceSink;
    callbacks: VoiceTurnControllerCallbacks;
    prefixDurationMs?: number;
}): VoiceTurnController;
//# sourceMappingURL=voice-turn-controller.d.ts.map