MongoDB

by kiliczsh
Verified
export interface MousePosition { x: number; y: number; } export interface KeyboardInput { text: string; } export interface KeyCombination { keys: string[]; // Array of keys to be pressed together, e.g. ["control", "c"] } export interface KeyHoldOperation { key: string; // The key to hold duration: number; // Duration in milliseconds state: 'down' | 'up'; // Whether to press down or release the key } export interface WindowInfo { title: string; position: { x: number; y: number; }; size: { width: number; height: number; }; } export interface ClipboardInput { text: string; } // Type for mouse button mapping export type ButtonMap = { [key: string]: number; left: number; right: number; middle: number; }; // New types for screen search functionality export interface ImageSearchOptions { confidence?: number; // Match confidence threshold (0-1) searchRegion?: { // Region to search within x: number; y: number; width: number; height: number; }; waitTime?: number; // Max time to wait for image in ms } export interface ImageSearchResult { location: { x: number; y: number; }; confidence: number; width: number; height: number; } export interface HighlightOptions { duration?: number; // Duration to show highlight in ms color?: string; // Color of highlight (hex format) } // New interface for screenshot options export interface ScreenshotOptions { region?: { x: number; y: number; width: number; height: number; }; quality?: number; // JPEG quality (1-100), only used if format is 'jpeg' format?: 'png' | 'jpeg'; // Output format grayscale?: boolean; // Convert to grayscale resize?: { // Resize options width?: number; // Target width (maintains aspect ratio if only one dimension provided) height?: number; // Target height fit?: 'contain' | 'cover' | 'fill' | 'inside' | 'outside'; // Resize fit option }; compressionLevel?: number; // PNG compression level (0-9), only used if format is 'png' }