/** * RdpSession — one tunnel: RdpBridge ↔ WS sender ↔ pixel-office. * * Mirrors VncSession exactly in structure and message naming conventions: * * rdp_ready — desktop is up; sends { sessionId, name, width, height, colorDepth } * rdp_fbu — frame-buffer update batch (same schema as vnc_fbu) * rdp_cursor — cursor shape change * rdp_close — session ended (error or intentional) * * Incoming commands from the browser (via webhookPoller): * fuq — frame update request (incremental|full; x/y/w/h) * pe — pointer (mouse) event * ke — key event * clipboard — local clipboard pushed to remote */ import type { RdpConnectOptions } from './types'; export declare class RdpSession { private readonly sessionId; private readonly wsSender; private readonly logger?; private _bridge; private _active; private _pendingFuq; private _bufferedFuq; constructor(sessionId: string, wsSender: (frame: Record) => boolean, logger?: ((msg: string) => void) | undefined); start(opts: RdpConnectOptions): Promise; handleInput(event: Record): void; stop(): void; }