import { Direction, PlayerMode, StreamOpt, StreamSpeed, StyleSize } from './model/playerModel';
import { RecordItem } from './utils/date';
import GlobalClient from './globalClient.js';
export declare class JPlayerMediaRecorder {
    mediaElement: unknown;
    private recorder;
    emitter: any;
    private timer$;
    private $stop;
    constructor(mediaElement: unknown, options: any);
    on(event: any, listener: any): void;
    off(event: any, listener: any): void;
    start(): void;
    stop(): void;
    destroy(): void;
}
export declare class JPlayer {
    el: HTMLElement;
    playerMode: PlayerMode;
    static get version(): any;
    static isSupported(): boolean;
    private features;
    private globalClient;
    private h5msClient;
    private nippleIns;
    private timelineIns;
    private e;
    private _httpDelay;
    private vid;
    private prefixName;
    private _rootHammertime;
    private vel;
    private cel;
    private canvas;
    private wrapperel;
    private joystickele;
    private videoWrapperEl;
    private streamOpt;
    private playUrl;
    private streamId;
    private contextMenu;
    private rectBlock;
    private playerIns;
    private _talkCtrl;
    private videoRatio;
    private playerOnCanPlay;
    private _playing;
    private _ptzing;
    private _zooming;
    private _drawing;
    private _setting;
    private _seeking;
    private _preSeekTime;
    _ptzSpeed: number;
    private _isFullScreen;
    private _streamSpeed;
    private _offsetObj;
    private _ponitDragClick;
    private _zoomStartPonit;
    private _zoomEndPonit;
    private _begintime;
    private _endtime;
    private _recordList;
    private _fullMonthRecordList;
    private _offsetTime;
    private processDraging;
    private _loading;
    private _recordTip;
    private _recording;
    private _retryTime;
    private _maxRetryTime;
    private _size;
    private _timer;
    private picker;
    private mediaRecorder;
    private $resize;
    private $click;
    private $dblclick;
    private $mouseenter;
    private $mouseout;
    private $mousemove;
    private $mousewheel;
    private $contextmenu;
    private $mousedown;
    private $mouseup;
    private subscriptionWrapList$;
    private subscriptionToolbarList$;
    private $ptzSubject;
    private _dataPickerShow;
    private _liveFlow;
    emitter: any;
    private zoomScale;
    private get recordListData();
    get mediaInfo(): any;
    get loading(): boolean;
    get playerType(): 'webgl' | 'video';
    set playerType(type: 'webgl' | 'video');
    set loading(v: boolean);
    set styleSize(size: StyleSize);
    get size(): StyleSize;
    get seeking(): boolean;
    set seeking(v: boolean);
    get recording(): boolean;
    set recording(v: boolean);
    private set loadingTxt(value);
    set error(v: any);
    get isFullScreen(): boolean;
    set isFullScreen(v: boolean);
    get speed(): string;
    get durationT(): number;
    set playing(v: boolean);
    get playing(): boolean;
    get ptzing(): boolean;
    set ptzing(v: boolean);
    private get setting();
    private set setting(value);
    get zooming(): boolean;
    set zooming(v: boolean);
    get streamSpeed(): StreamSpeed;
    set videoSpeed(v: StreamSpeed);
    set streamSpeed(v: StreamSpeed);
    get offsetTime(): number;
    set offsetTime(v: number);
    private get isMobile();
    constructor(globalClient: GlobalClient, el: HTMLElement, playerMode: PlayerMode);
    private initHammer;
    on(event: any, listener: any): void;
    off(event: any, listener: any): void;
    private createH5msClient;
    init(stream?: StreamOpt): Promise<void>;
    toogleCanvasVide(toogle: any): void;
    updateCanvas(): void;
    getFeatureList(): {
        msePlayback: boolean;
        mseLivePlayback: boolean;
        networkStreamIO: boolean;
        networkLoaderName: string;
        nativeMP4H264Playback: boolean;
        nativeWebmVP8Playback: boolean;
        nativeWebmVP9Playback: boolean;
    };
    initObservables(): void;
    unSubscribeObservables(): void;
    unSubscribeToolbarObservables(): void;
    initDom(): void;
    initToolBar(): Promise<never>;
    creatPlayer(): Promise<void>;
    switchStream(streamNO: number): void;
    requestInfo(url: string): {
        url: string;
        aisleId: any;
        headers: {
            "Content-Type": string;
            Authorization: string;
        };
    };
    sendCmdPtz(cmd: number, operate?: {
        index: number;
        name?: string;
        state?: number;
    }): Promise<void>;
    sendCmdDirection(direction: number): Promise<any>;
    sendCmdPreset({ index, name, state }: {
        index: number;
        name?: string;
        state?: number;
    }): Promise<any>;
    queryRecord(stream?: StreamOpt): any;
    openStream(stream: StreamOpt): Promise<any>;
    onPlayerError(ErrorTypes: any, ErrorDetails: any, info: any): void;
    private initContextMenu;
    private getRightMenu;
    private bindEvents;
    private unBindEvents;
    setFullScreen(value?: boolean): void;
    private fullScreenHandler;
    private onvSeekedCanPlay;
    private onvSeeked;
    private setMCPosition;
    private getPtzPosition;
    /**
     *  3 2 1
     *  4 * 0
     *  5 6 7
     *
     */
    private getPtzPositionFlag;
    private appendMockCursor;
    private showToolbars;
    private hideToolbars;
    private showSettingMenu;
    private hideSettingMenu;
    private hidePicker;
    hideContextMenu(): void;
    private checkEleSize;
    private addPtzClass;
    private clearPtzClass;
    private cleanTip;
    play(): void;
    pause(): void;
    seek(offsetTime: any): Promise<void>;
    private originSeek;
    private resetPlayerStatus;
    refresh(streamOpt?: StreamOpt): Promise<void>;
    toggleVod(streamOpt?: StreamOpt): Promise<void>;
    private setCanvasSize;
    /**
     * 绘制矩形框
     **/
    private switchDraw;
    private videoIsOriginalState;
    private toggleDraw;
    drawBtnHandle(e: any): void;
    private setRectRatio;
    getShape(): Promise<any>;
    setFillRatio(): void;
    resetRatio(): void;
    ratioAdjust(W?: number, H?: number): void;
    record(): void;
    screenshot(): void;
    toggleSetting(): void;
    togglePtz(): void;
    toggleZoom(): void;
    private emptyVideoDom;
    private emptyVideoTool;
    seekRecordStream(offsetTime: number): Promise<boolean>;
    pauseToogleStream(pause?: boolean): Promise<boolean>;
    private setSpeed;
    getSpeed(): Promise<any>;
    toggleVodOrigin(e: any): void;
    checkCanConfir(force?: boolean): void;
    updatePickerOpt(opt: any): void;
    checkPickerRecordList(startTimeNu: any, endTimeNu: any): Promise<void>;
    queryRecordList(startTimeNu: any, endTimeNu: any): Promise<RecordItem[]>;
    initPicker(): void;
    fixPickerTime(): void;
    changeRangeDate(selectedDates: Date[]): void;
    toggleVodOriginForNumber(vod: number): void;
    addStreamSpeed(): void;
    reduceStreamSpeed(): void;
    upDateSpeedView(streamSpeed: StreamSpeed): void;
    creatZoomStartPonit(ox: any, oy: any): void;
    cleanZoomStartPonit(): void;
    setZoom(w: any, h: any, dir: Direction): void;
    private updateProcess;
    private updateTimeLine;
    private updateProcessBarView;
    private updateProcessClockView;
    private getOffetTime;
    private getOffetClientTime;
    private getOffetX;
    initNipple(): void;
    sendPtzCmd(cmd: any, param?: number): void;
    destroyNipple(): void;
    close(): void;
    playerDestroy(): void;
    destroy(): void;
}
export default JPlayer;
