import { VoiceResponse } from "@fonoster/voice";
import { Voice } from "./types";
declare class VoiceImpl implements Voice {
    private readonly voice;
    private readonly playbackRef;
    sessionRef: string;
    sgatherStream: {
        stop: () => Promise<void>;
        onData: (cb: (payload: {
            speech: string;
            responseTime: number;
        }) => void) => void;
    };
    vadStream: {
        stop: () => Promise<void>;
        onData: (cb: (chunk: Uint8Array) => void) => void;
    };
    constructor(sessionRef: string, voice: VoiceResponse);
    answer(): Promise<void>;
    hangup(): Promise<void>;
    say(text: string): Promise<void>;
    sgather(): Promise<{
        stop: () => Promise<void>;
        onData: (cb: (payload: {
            speech: string;
            responseTime: number;
        }) => void) => void;
    }>;
    stream(): Promise<{
        stop: () => Promise<void>;
        onData: (cb: (chunk: Uint8Array) => void) => void;
    }>;
    transfer(to: string, options: {
        record: boolean;
        timeout: number;
    }): Promise<void>;
    stopSpeech(): Promise<void>;
    stopStreams(): Promise<void>;
}
export { VoiceImpl };
