///
import React from 'react';
import RFB from '../noVNC/core/rfb';
import type { Player } from "jsmpeg";
import MouseButtonMapper from "../noVNC/core/mousebuttonmapper";
export interface RFBOptions {
shared: boolean;
credentials: {
username?: string;
password?: string | null;
target?: string;
hiDpi?: boolean;
};
repeaterID: string;
wsProtocols: string | string[];
}
export interface KasmVNCRFBOptions {
dynamicQualityMin?: number;
dynamicQualityMax?: number;
jpegVideoQuality?: number;
webpVideoQuality?: number;
videoArea?: number;
videoTime?: number;
videoOutTime?: number;
videoScaling?: number;
treatLossless?: number;
maxVideoResolutionX?: number;
maxVideoResolutionY?: number;
frameRate?: number;
idleDisconnect?: boolean;
pointerRelative?: boolean;
videoQuality?: number;
antiAliasing?: number;
clipboardUp?: boolean;
clipboardDown?: boolean;
clipboardSeamless?: boolean;
enableIME?: boolean;
clipboardBinary?: boolean;
enableWebRTC?: boolean;
mouseButtonMapper?: MouseButtonMapper;
enableQOI?: boolean;
}
export interface Props {
url: string;
audioUrl?: string;
style?: object;
className?: string;
viewOnly?: boolean;
rfbOptions?: Partial;
kasmOptions?: Partial;
focusOnClick?: boolean;
clipViewport?: boolean;
dragViewport?: boolean;
scaleViewport?: boolean;
resizeSession?: boolean;
showDotCursor?: boolean;
background?: string;
qualityLevel?: number;
compressionLevel?: number;
autoConnect?: boolean;
retryDuration?: number;
debug?: boolean;
loadingUI?: React.ReactNode;
onConnect?: (rfb?: RFB) => void;
onDisconnect?: (rfb?: RFB) => void;
onCredentialsRequired?: (rfb?: RFB) => void;
onSecurityFailure?: (e?: {
detail: {
status: number;
reason: string;
};
}) => void;
onClipboard?: (e?: {
detail: {
text: string;
};
}) => void;
onBell?: () => void;
onDesktopName?: (e?: {
detail: {
name: string;
};
}) => void;
onCapabilities?: (e?: {
detail: {
capabilities: RFB["capabilities"];
};
}) => void;
}
export declare enum Events {
connect = 0,
disconnect = 1,
credentialsrequired = 2,
securityfailure = 3,
clipboard = 4,
bell = 5,
desktopname = 6,
capabilities = 7
}
export type EventListeners = {
-readonly [key in keyof typeof Events]?: (e?: any) => void;
};
export type VncScreenHandle = {
connect: () => void;
disconnect: () => void;
connected: boolean;
sendCredentials: (credentials: RFBOptions["credentials"]) => void;
sendKey: (keysym: number, code: string, down?: boolean) => void;
sendCtrlAltDel: () => void;
focus: () => void;
blur: () => void;
machineShutdown: () => void;
machineReboot: () => void;
machineReset: () => void;
clipboardPaste: (text: string) => void;
rfb: RFB | null;
jsmpegPlayer: Player | null;
eventListeners: EventListeners;
};
declare const _default: React.ForwardRefExoticComponent>;
export default _default;