declare class FakeCursor { private element; private x; private y; private visible; private originalCursor; constructor(); private createCursorElement; show(useFallback: boolean): void; hide(useFallback: boolean): void; setPosition(x: number, y: number): void; getPosition(): { x: number; y: number; }; isVisible(): boolean; destroy(): void; } export declare function getFakeCursor(): FakeCursor; export declare function destroyFakeCursor(): void; export interface PointerLockOptions { onMove: (movementX: number, movementY: number, cursorX: number, cursorY: number) => void; onLockChange?: (locked: boolean) => void; } export declare class PointerLockManager { private element; private fakeCursor; private options; private isLocked; private cursorX; private cursorY; private useFallback; private lastMouseX; private lastMouseY; constructor(element: HTMLElement, options: PointerLockOptions); requestLock(initialX: number, initialY: number): void; releaseLock(): void; private cleanup; private handlePointerLockChange; private handleFallbackMouseMove; private handleMouseMove; isPointerLocked(): boolean; } export {};