import CozeBot from './cozebot';
import { ApiResult } from './declare';
import { RoleType } from '@coze/api';
export default class VoiceCozeBot extends CozeBot {
    private socket;
    private traceId;
    private chatVoiceBuffer;
    private chatContent;
    private serverVad;
    private combineTTS;
    private currentAgentStatus;
    private waitingWarmVoice;
    private waitingInterval;
    private willSendWarmVoice;
    private maxWaitingTimes;
    private waitingTimes;
    private waitingTimer;
    /**
     * 返回整个对话的语音流（pcm)
     */
    getChatVoiceFile(): Buffer;
    /**
     * 清除等待计时器
     */
    private clearWaitingTimer;
    /**
     * 开始等待用户说话
     */
    private startWaitingUserSpeaking;
    /**
     * 获取到整个对话过程内容
     * @returns
     */
    getChatContent(): {
        role: string;
        content: string;
    }[];
    /**
     * 提交端插件结果
     * @param data
     */
    submitActionResult(result: {
        chat_id: string;
        tool_outputs: {
            tool_call_id: string;
            output: string;
        }[];
    }): void;
    /**
     * 提交一个暖场的内容，生成语音后下发到客户端
     * @param text
     */
    submitWarmVoice(text: string): void;
    /**
     * 持续发送来自于客户端语音流
     * @param originalVoice 原始的录音流
     * @param cleanVoice 经过回声消除后的录音流
     */
    sendVoice(originalVoice: Buffer, cleanVoice?: any): void;
    /**
     * 手动提交对话内容
     * @param data
     */
    sendChatMessage(content: string, role?: RoleType): void;
    /**
     * 停止对话
     */
    close(): void;
    /**
     * 提交语音片段 （这个在非server_vad 模式下，如按停止录音按钮。主动提交，Server_vad模式下无效）
     * 其实就是给服务器一个截止的标记
     * @param voiceBuffer
     */
    submitVoiceBuffer(): void;
    /**
     * 手动清除缓冲区的音频
     * 同上面submitVoiceBuffer 配套，Server_vad模式下无效
     */
    clearVoiceBuffer(): void;
    /**
     * 打断智能体回复中
     */
    breakAnswer(): void;
    /**
     * 开启语音对话（Coze支持双向语音对话流)
     * @param setting
     */
    startVoiceChat(setting?: any): Promise<ApiResult>;
    /**
     * 双向对话连接成功
     * @param data
     */
    ChatCreated(chatsettting?: any): void;
    /**
     * 上行指令发送
     * @param command
     */
    sendCommand(command: any): void;
}
//# sourceMappingURL=voicecoze.d.ts.map