/** * Weavetab — tools/emulation.ts * browser_emulate: Network, CPU, Geolocation, and Device emulation over CDP. * Weavetab by fy2ne */ import CDP from "chrome-remote-interface"; import type { Config } from "../config/loader.js"; export interface EmulationOptions { /** Network throttling profile or custom parameters */ network?: "offline" | "slow3g" | "fast3g" | "4g" | "online" | { offline?: boolean; latency?: number; downloadThroughput?: number; uploadThroughput?: number; }; /** CPU slowdown multiplier (e.g. 2 for 2x slowdown, 4 for 4x slowdown, 1 to disable) */ cpuThrottlingRate?: number; /** Override geolocation coordinates */ geolocation?: { latitude: number; longitude: number; accuracy?: number; }; /** Override browser timezone (e.g. "America/New_York", "Europe/London") */ timezoneId?: string; /** Emulate prefers-color-scheme (dark/light mode) */ colorScheme?: "light" | "dark" | "no-preference"; /** User Agent string override */ userAgent?: string; } export declare function browserEmulate(session: CDP.Client, options: EmulationOptions, _config: Config): Promise<{ success: boolean; applied: string[]; error?: string; }>;