/** * Weavetab — tools/viewport.ts * browser_viewport: Enhanced viewport emulation with device presets, mobile support, * geolocation, locale, timezone, and advanced features to surpass Playwright. * Weavetab by fy2ne */ import CDP from "chrome-remote-interface"; import type { Config } from "../config/loader.js"; export interface ViewportOptions { width?: number; height?: number; deviceScaleFactor?: number; mobile?: boolean; action: "set" | "clear" | "list" | "preset"; devicePreset?: string; userAgent?: string; geolocation?: { latitude: number; longitude: number; accuracy?: number; }; locale?: string; timezoneId?: string; colorScheme?: 'light' | 'dark' | 'no-preference'; hasTouch?: boolean; screenOrientation?: 'portrait' | 'landscape' | 'none'; } export interface DevicePreset { userAgent: string; viewport: { width: number; height: number; }; deviceScaleFactor: number; mobile: boolean; hasTouch: boolean; screenOrientation?: 'portrait' | 'landscape'; } export declare const DEVICE_PRESETS: Record; export declare function browserViewport(session: CDP.Client, options: ViewportOptions, _config: Config): Promise<{ success: boolean; message: string; data?: any; }>;