import type { ComputerClient, RPCResponse } from './computer-rpc.js';
export declare function mirrorByte(b: number): number;
export declare function vncAuthResponse(challenge: Buffer, password: string): Buffer;
export declare function buildPixelFormat(): Buffer;
export declare function encodeSetPixelFormat(pf: Buffer): Buffer;
export declare function encodeSetEncodings(encodings: number[]): Buffer;
export declare function encodeFbUpdateRequest(incremental: boolean, x: number, y: number, w: number, h: number): Buffer;
export declare function encodePointerEvent(buttonMask: number, x: number, y: number): Buffer;
export declare function encodeKeyEvent(down: boolean, keysym: number): Buffer;
export declare function keysymForChar(ch: string): number;
export declare function keysymForKeyName(name: string): number | null;
export declare function parseKeyCombo(combo: string): {
    modifiers: number[];
    key: number;
};
export declare function encodePng(rgb: Buffer, width: number, height: number): Buffer;
export interface ServerInit {
    width: number;
    height: number;
    name: string;
}
export declare function scrollButtonsFor(dx: number, dy: number): {
    vButton: number;
    hButton: number;
};
export declare const MAX_RFB_STRING_LEN: number;
export declare function parseVncEndpoint(raw: string | undefined): {
    host: string;
    port: number;
} | null;
export declare class RfbClient implements ComputerClient {
    private host;
    private port;
    private password;
    private sock;
    private reader;
    private ready;
    private info;
    private closed;
    constructor(host: string, port: number, password: string);
    private write;
    private readLenString;
    private handshake;
    private teardown;
    private withTimeout;
    private captureScreen;
    private sendClick;
    private sendScroll;
    private typeText;
    private pressCombo;
    call(method: string, params?: Record<string, unknown>): Promise<RPCResponse>;
    close(): Promise<void>;
}
