/** * Android Emulator screen recording via `adb shell screenrecord`. * * `adb shell screenrecord` records to a file ON THE EMULATOR and stops on * SIGINT. Maximum length is 180 seconds (an Android limitation, not ours) * — we surface that as a clear error if the user requests longer. * * Workflow: * 1. Pick a device (preference → first online emulator) * 2. Start `adb shell screenrecord /sdcard/sl-.mp4` as a child * 3. Run the user's test command * 4. SIGINT screenrecord, wait for it to flush * 5. `adb pull` the .mp4 off the emulator to the user-requested output */ export interface AndroidRecordOptions { command: string; output: string; /** Device serial. Defaults to the first online emulator. */ device?: string; cwd?: string; shell?: string; /** Recording cap in seconds. Android caps at 180; we default to that. */ timeLimit?: number; /** * When true (default), capture tap events via `adb shell getevent -l` * and post-process the .mp4 with ffmpeg to overlay red rings at each * tap. Falls back to writing only the sidecar JSON if ffmpeg is * missing — the raw recording is still produced. */ overlays?: boolean; /** * When true, the spawned command sees the full process.env. Default * false: only a minimal allowlist is forwarded to keep secrets out of * the recorded artifact. */ inheritEnv?: boolean; } export interface AndroidRecordResult { output: string; device: string; exitCode: number; durationSec: number; recordingClosed: boolean; /** Number of taps captured during the run. */ tapCount?: number; /** Path to the .taps.json sidecar describing each captured tap. */ tapsJsonPath?: string; /** True when ffmpeg was used to render tap rings into the .mp4. */ overlaysApplied?: boolean; } /** Returns the first online emulator/device serial, optionally filtered by a preference. */ export declare function findAndroidDevice(preference?: string): Promise; export declare function recordAndroidEmulator(options: AndroidRecordOptions): Promise; //# sourceMappingURL=android.d.ts.map