/// <reference types="node/events" />
/// <reference types="node/events" />
/// <reference types=".store/pcm-player@0.0.16/node_modules/pcm-player" />
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 {
    private autoTalk;
    _isCompatible: boolean;
    _pcmPlayer: PCMPlayer;
    _processor: any;
    _prefixName: string;
    _talkDemo: HTMLElement;
    _talkTitle: string;
    _videoBox: Element;
    _talkBody: HTMLElement;
    _playUrl: string;
    _talkStream: any;
    _decoder: any;
    _animationId: number;
    requestInfo: requestType;
    _capturer: {
        audioStream: any;
        audioContext: any;
        audioSource: any;
        audioNode: any;
        scriptProcessor: any;
        gainNode: any;
    };
    _streamAudioInfo: {
        audioType: string;
        audioSample: number;
        audioBitrate: number;
        audioBitwidth: number;
        audioChannel: number;
    };
    private eventList;
    emitter: EventEmitter;
    constructor(stream?: StreamOpt, requestInfo?: requestType, prefixName?: string, videoBox?: Element);
    on(event: any, listener: any): void;
    off(event: any, listener: any): void;
    init(): Promise<void>;
    addEvent(talkHead: HTMLElement, talkFoot: HTMLElement): void;
    removeEvent(): void;
    _loadCapturer(): Promise<void>;
    audioAnimation(): Promise<void>;
    _loadProcessing(): void;
    /**
     * pcm 音频数据加工处理
     */
    _loadProcessor(): void;
    _loadPlayer(): void;
    open(): Promise<void>;
    getUrl(): Promise<any>;
    stop(en?: boolean): void;
    destroy(en?: boolean): void;
    static talkIsSupported(): boolean;
}
export default TalkCtrl;
