import { Direction, PlayerMode, StreamOpt, StreamSpeed, StyleSize } from "./model/playerModel";
import GlobalClient from "./globalClient.js";
export declare class JPlayerMediaRecorder {
    mediaElement: unknown;
    private recorder;
    emitter: any;
    private timer$;
    private $stop;
    private subscriptiontimer;
    constructor(mediaElement: unknown, time: 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 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 _currentTime;
    private _audioCtrl;
    private _videoStream;
    private lastDecodedFrame;
    _talkCtrl: any;
    _vodPlayer: any;
    private osdTimeId;
    private videoRatio;
    private playerOnCanPlay;
    private _playing;
    private _ptzing;
    private _ptzLoad;
    private _zooming;
    private _drawing;
    private _setting;
    private _seeking;
    _ptzSpeed: number;
    private _isFullScreen;
    private _offsetObj;
    private _ponitDragClick;
    private _zoomStartPonit;
    private _zoomEndPonit;
    private _begintime;
    private _endtime;
    private _offsetTime;
    private _loading;
    private _recording;
    private _retryTime;
    private _maxRetryTime;
    private _size;
    private _timer;
    private mediaRecorder;
    private $resize;
    private $click;
    private $dblclick;
    private $mouseenter;
    private $mouseout;
    private $mousemove;
    private $mousewheel;
    private $contextmenu;
    private $mousedown;
    private $mouseup;
    private _isMouseUp;
    private subscriptionWrapList$;
    private subscriptionToolbarList$;
    private $ptzSubject;
    private _liveFlow;
    private _OSDTime;
    emitter: any;
    private zoomScale;
    private _sequence;
    private _passageRepeat;
    private set sequence(value);
    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);
    set messageError(err: any);
    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 streamSpeed(v: StreamSpeed);
    set offsetTime(v: number);
    private get isMobile();
    constructor(globalClient: GlobalClient, el: HTMLElement, playerMode?: PlayerMode);
    private initHammer;
    on(event: any, listener: any): void;
    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(): void;
    creatPlayer(): Promise<any>;
    updateOsdTimeThrottle(): void;
    switchStream(streamNO: number, dom?: HTMLSpanElement): 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>;
    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 setMCPosition;
    private getPtzPosition;
    /**
     *  3 2 1
     *  4 * 0
     *  5 6 7
     *
     */
    private getPtzPositionFlag;
    private appendMockCursor;
    private showToolbars;
    private hideToolbars;
    private showSettingMenu;
    private hideSettingMenu;
    hideContextMenu(): void;
    private checkEleSize;
    private addPtzClass;
    private clearPtzClass;
    play(isGive?: boolean): void;
    pause(): void;
    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(time?: number): Promise<void>;
    screenshot(): void;
    toggleSetting(): void;
    togglePtz(): void;
    toggleZoom(): void;
    private emptyVideoDom;
    private emptyVideoTool;
    toggleVodOrigin(e: any): void;
    toggleVodOriginForNumber(vod: number): 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;
    sendAudio(): any;
    destroyNipple(): void;
    close(): void;
    playerDestroy(): void;
    clearOsdTimeId(): void;
    destroy(): void;
}
export default JPlayer;
