/// <reference types="node" />
import { StreamOpt } from "../model/playerModel";
import { EventEmitter } from "events";
import PCMPlayer from 'pcm-player';
interface requestType {
    url: string;
    aisleId: string;
    protocol: string;
    headers: {
        "Content-Type": string;
        "Authorization": string;
    };
}
declare class TalkCtrl {
    autoTalk: boolean;
    _ws: any;
    _pcmPlayer: PCMPlayer;
    _receivedSteamHead: boolean;
    _decoder: any;
    _lastCmd: any;
    _processor: any;
    requestInfo: requestType;
    _requestData: {
        playType: string;
        playUrl: string;
        startTime: any;
        endTime: any;
    };
    _capturer: {
        audioStream: any;
        audioContext: any;
        audioSource: any;
        audioNode: any;
        scriptProcessor: any;
    };
    _streamAudioInfo: {
        audioType: string;
        audioSample: number;
        audioBitrate: number;
        audioBitwidth: number;
        audioChannel: number;
    };
    emitter: EventEmitter;
    constructor(stream?: StreamOpt, requestInfo?: requestType);
    init(): Promise<void>;
    /**
     * pcm 音频数据加工处理
     */
    _loadProcessor(): void;
    open(): Promise<void>;
    getUrl(): Promise<any>;
    setInfo(code: any, mediaInfo: any): void;
    /**
     * 音频播放器
     */
    createPcm(): void;
    /**
     * 码流处理
     * @param {*} bufData
     * @returns
     */
    handleStream(bufData: any): void;
    handlingData(bufData: any, isHead?: boolean): void;
    outputData(arrBuf: any): void;
    /**
     * 交互信息处理
     * @param {*} strData
     */
    handleInteract(strData: any): void;
    sendCmd(cmd: any, extra?: {}): Promise<unknown>;
    close(): void;
    destroy(): void;
    toggle(e: any): void;
    static talkIsSupported(): boolean;
}
export default TalkCtrl;
