import CDP from "chrome-remote-interface"; import type { Config } from "../config/loader.js"; export interface CursorOptions { trail?: "off" | "subtle" | "full"; opacity?: number; speed?: "human" | "fast" | "instant"; } export declare function ensureInitialCursorPosition(session: CDP.Client): Promise<{ x: number; y: number; }>; export interface BurstProfile { groupSize: [number, number]; interCharMin: number; interCharMax: number; interGroupMin: number; interGroupMax: number; } export declare const BURST_PROFILES: Record<"fast" | "normal" | "deliberate", BurstProfile>; export type GhostProfile = "human" | "fast" | "instant"; export declare function ghostType(session: CDP.Client, rawText: string, config: Config, /** CSS selector of the target field — used to re-verify focus every N chars */ targetSelector?: string, profileName?: "fast" | "normal" | "deliberate"): Promise; export declare function ghostMove(session: CDP.Client, targetX: number, targetY: number, config: Config, label?: string, profile?: GhostProfile, cursorOpts?: Pick): Promise; /** Cancel simulated reading so actions don't wait 15s. */ export declare function cancelReading(): void; export declare function startReadingSimulation(session: CDP.Client, wordCount: number, config: Config): void; export declare function waitForReading(): Promise; export declare function ghostResult(session: CDP.Client, success: boolean, actionType: string, detail?: string): Promise; export declare function recordCursorPosition(x: number, y: number): void; export declare function getCursorTrail(length?: number): { x: number; y: number; t: number; }[]; export declare function clearCursorTrail(): void; export declare function ghostClick(session: CDP.Client, x: number, y: number, options?: any): Promise; export declare function ghostWait(session: CDP.Client): void; export declare function ghostIdle(session: CDP.Client): void;