export interface RDCAbstractEvent {
    /**
     * controlled user's userId
     */
    userId: string;
}
export interface RDCKeyboardEvent extends RDCAbstractEvent {
    /**
     * keyCode keyboard event key code
     */
    keyCode: number;
    /**
     * whether or not press `ctrl` at same time? default is `undefined`
     */
    isCompoundCtrl?: boolean;
    /**
     * whether or not press `alt` at same time? default is `undefined`
     */
    isCompoundAlt?: boolean;
    /**
     * whether or not press `shift` at same time? default is `undefined`
     */
    isCompoundShift?: boolean;
}
export interface RDCMouseEvent extends RDCAbstractEvent {
    /**
     * type mouse event type @typedef MouseEventType
     */
    type: RDCMouseEventType;
    /**
     * mouse event x of point
     */
    x: number;
    /**
     *  mouse event y of point
     */
    y: number;
    /**
     *  delta can be undefined if it's not captured
     */
    delta?: number;
}
export interface RDCAddonOptions {
    log_level: number;
    log_path: string;
    log_name: string;
    kb_buff_ms: number;
    mouse_buff_ms: number;
}
export declare enum RDCAddonEvents {
    LOGIN = "login",
    STATE = "state",
    SEND_RESULT = "send_result",
    MSG = "msg",
    CTRL_REQ = "ctrl_req",
    QUIT_REQ = "quit_req",
    GETTING_FOCUS = "hold_control",
    MOUSE_STATUS = "mouse_status",
    UPLOAD_RESULT = "upload_result",
    PASTED = "pasted",
    REMOTE_PASTED = "remote_pasted",
    OBSERVATION = "bc_data",
    REMOTE_END_INFO = "remote_info"
}
export declare enum RDCClipboardContentType {
    UNKNOWN = 0,
    TEXT = 2,
    FILE = 1
}
export declare enum RDCMouseEventType {
    LEFT_CLICK = 1,
    LEFT_DBL_CLICK = 2,
    RIGHT_CLICK = 3,
    RIGHT_DBL_CLICK = 4,
    MID_CLICK = 5,
    WHEEL = 6,
    MOVE = 7,
    DRAG_BEGIN = 8,
    DRAG_MOVE = 9,
    DRAG_END = 10
}
export declare enum RDCJoinErrorCode {
    /**
     * Unknown error
     */
    UNKNOWN_ERROR = 1,
    /**
     * Server_rejected
     */
    SERVER_REJECTED = 2,
    /**
     * Invalid login argument
     */
    INVALID_LOGIN_ARGUMENT = 3,
    /**
     * Invalid app id
     */
    INVALID_APP_ID = 4,
    /**
     * Invalid token
     */
    INVALID_TOKEN = 5,
    /**
     * Token expired
     */
    TOKEN_EXPIRED = 6,
    /**
     * Authorize fail
     */
    AUTHORIZE_FAIL = 7,
    /**
     * Duplicated login
     */
    DUPLICATED_LOGIN = 8,
    /**
     * Timeout
     */
    TIMEOUT = 9,
    /**
     * Login too often
     */
    LOGIN_TOO_OFTEN = 10,
    /**
     * Not initialized
     */
    NOT_INITIALIZED = 101
}
export declare enum RDCEngineState {
    /**
     * Engine initialized
     */
    INITIALIZED = 1,
    /**
     * Logged in
     */
    LOGGED_IN = 2,
    /**
     * Logged out
     */
    LOGGED_OUT = 3,
    /**
     * Engine Connected
     */
    CONNECTED = 4,
    /**
     * Engine Disconnect
     */
    DISCONNECT = 5
}
export declare type RDCEventCallback = (event: string, code: number, message: string) => void;
/**
 * @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/cursor
 */
export declare type RDCCursor = 'default' | 'text' | 'wait' | 'crosshair' | 'nwse-resize' | 'nesw-resize' | 'ew-resize' | 'ns-resize' | 'all-scroll' | 'not-allowed' | 'pointer' | 'progress' | 'help';
export interface RDCRemoteEndInfo {
    peer: string;
    os: string;
    ver: string;
    w: number;
    h: number;
}
