type cutOutBoxBorder = {
    x: number;
    y: number;
    width: number;
    height: number;
    index: number;
    option: number;
};
type movePositionType = {
    moveStartX: number;
    moveStartY: number;
};
type positionInfoType = {
    startX: number;
    startY: number;
    width: number;
    height: number;
};
type textInfoType = {
    positionX: number;
    positionY: number;
    color: string;
    size: number;
};
type zoomCutOutBoxReturnType = {
    tempStartX: number;
    tempStartY: number;
    tempWidth: number;
    tempHeight: number;
};
type toolPositionValType = 'left' | 'right' | 'center';
type hideBarInfoType = {
    state: boolean;
    color?: string;
    fillWidth?: number;
    fillHeight?: number;
    fillState?: boolean;
};
type drawCutOutBoxReturnType = {
    startX: number;
    startY: number;
    width: number;
    height: number;
};
type toolIcoType = 'square' | 'round' | 'right-top' | 'brush' | 'mosaicPen' | 'text' | 'separateLine' | 'save' | 'undo' | 'close' | 'confirm';
type toolbarType = {
    id: number;
    title: string;
};
type crcEventType = {
    state: boolean;
    handler?: () => void;
};
type genericMethodPostbackType = {
    code: number;
    data: null | boolean | number | Record<string, any>;
    msg: string;
};
type screenShotType = {
    enableWebRtc?: boolean;
    screenFlow?: MediaStream;
    level?: number;
    canvasWidth?: number;
    canvasHeight?: number;
    onComplete?: (imgInfo: {
        base64: string;
        cutInfo: positionInfoType;
    }) => void;
    onClose?: () => void;
    onTrigger?: (res: {
        code: number;
        msg: string;
        displaySurface: string | null;
        displayLabel: string | null;
    }) => void;
    onLoaded?: (res: {
        code: number;
        msg: string;
        displaySurface: string | null;
        displayLabel: string | null;
    }) => void;
    onCancel?: (res: {
        code: number;
        msg: string;
        errorInfo: string;
    }) => void;
    onSave?: (code: number, msg: string) => void;
    position?: {
        top?: number;
        left?: number;
    };
    clickCutFullScreen?: boolean;
    showToolIcon?: toolIcoType[];
    showScreenData?: boolean;
    confirmBtnText?: string;
    imgSrc?: string;
    loadCrossImg?: boolean;
    proxyUrl?: string;
    screenShotDom?: HTMLElement | HTMLDivElement | HTMLCanvasElement;
    cropBoxInfo?: {
        x: number;
        y: number;
        w: number;
        h: number;
    };
    webrtcReplyTime?: number;
    wrcImgPosition?: {
        x: number;
        y: number;
        w: number;
        h: number;
    };
    lockScroll?: boolean;
    maskColor?: {
        r: number;
        g: number;
        b: number;
        a: number;
    };
    toolPosition?: toolPositionValType;
    writeBase64?: boolean;
    hiddenScrollBar?: hideBarInfoType;
    webrtcWindowMode?: boolean;
    rightClickEvent?: crcEventType;
    cutDotColor?: string;
    cutDotSize?: number;
    cutDotRound?: boolean;
    maxUndoNum?: number;
    useRatioArrow?: boolean;
    imgAutoFit?: boolean;
    saveImgTitle?: string;
    dpr?: number;
};

declare class ScreenShot {
    readonly version: string;
    readonly buildTime: string;
    private readonly data;
    private readonly videoController;
    private screenShotContainer;
    private screenShotDom;
    private toolController;
    private screenShotImageController;
    private screenShotCanvas;
    private textInputController;
    private optionController;
    private optionIcoController;
    private cutBoxSizeContainer;
    private plugInParameters;
    private webrtcReplyTime;
    private keyboardEventHandle;
    private drawGraphPosition;
    private tempGraphPosition;
    private wrcImgPosition;
    private hiddenScrollBar;
    private wrcWindowMode;
    private cutOutBoxBorderArr;
    private borderOption;
    private movePosition;
    private dragFlag;
    private clickCutFullScreen;
    private getFullScreenStatus;
    private drawGraphPrevX;
    private drawGraphPrevY;
    private degreeOfBlur;
    private dpr;
    private fullScreenDiffHeight;
    private position;
    private imgSrc;
    private loadCrossImg;
    private mouseInsideCropBox;
    private proxyUrl;
    private drawStatus;
    private captureStream;
    private cropBoxInfo;
    private textInputPosition;
    private placement;
    private customRightClickEvent;
    constructor(options: screenShotType);
    getCanvasController(): HTMLCanvasElement | null | undefined;
    destroy(): void;
    complete(): void;
    private load;
    private loadScreenFlowData;
    private wrcScreenShot;
    /**
     * 初始化截图容器
     * @param triggerCallback
     * @param context
     * @param screenShotContainer
     * @private
     */
    private initScreenShot;
    private mouseDownEvent;
    private mouseMoveEvent;
    private mouseUpEvent;
    private croppingBoxCallerCallback;
    private toolBarCallerCallback;
    /**
     * 显示最新的画布状态
     * @private
     */
    private showLastHistory;
    private setGlobalParameter;
    private setOptionalParameter;
    private createEvent;
}

export { ScreenShot as default };
export type { crcEventType, cutOutBoxBorder, drawCutOutBoxReturnType, genericMethodPostbackType, hideBarInfoType, movePositionType, positionInfoType, screenShotType, textInfoType, toolIcoType, toolPositionValType, toolbarType, zoomCutOutBoxReturnType };
