import { MousePosition, KeyboardInput, KeyCombination, KeyHoldOperation, ScreenshotOptions, ClipboardInput } from '../types/common.js'; import { WindowsControlResponse } from '../types/responses.js'; export interface KeyboardAutomation { typeText(input: KeyboardInput): WindowsControlResponse; pressKey(key: string): WindowsControlResponse; pressKeyCombination(combination: KeyCombination): Promise; holdKey(operation: KeyHoldOperation): Promise; } export interface MouseAutomation { moveMouse(position: MousePosition): WindowsControlResponse; clickMouse(button?: 'left' | 'right' | 'middle'): WindowsControlResponse; doubleClick(position?: MousePosition): WindowsControlResponse; getCursorPosition(): WindowsControlResponse; scrollMouse(amount: number): WindowsControlResponse; dragMouse(from: MousePosition, to: MousePosition, button?: 'left' | 'right' | 'middle'): WindowsControlResponse; clickAt(x: number, y: number, button?: 'left' | 'right' | 'middle'): WindowsControlResponse; } export interface ScreenAutomation { getScreenSize(): WindowsControlResponse; getActiveWindow(): WindowsControlResponse; focusWindow(title: string): WindowsControlResponse; resizeWindow(title: string, width: number, height: number): Promise; repositionWindow(title: string, x: number, y: number): Promise; getScreenshot(options?: ScreenshotOptions): Promise; } export interface ClipboardAutomation { getClipboardContent(): Promise; setClipboardContent(input: ClipboardInput): Promise; hasClipboardText(): Promise; clearClipboard(): Promise; }