/**
 * Windows Native Desktop Automation Provider
 *
 * Uses PowerShell P/Invoke (user32.dll) for native Windows desktop automation.
 * Supports WSL2 interop via powershell.exe.
 */
import { BaseNativeProvider } from './base-native-provider.js';
import type { ProviderCapabilities, MousePosition, MouseMoveOptions, MouseClickOptions, MouseDragOptions, MouseScrollOptions, MouseButton, KeyCode, KeyPressOptions, TypeOptions, HotkeySequence, WindowInfo, WindowSearchOptions, WindowSetOptions, AppInfo, AppLaunchOptions, ScreenInfo, ColorInfo, ClipboardContent } from './types.js';
export declare class WindowsNativeProvider extends BaseNativeProvider {
    readonly platformName = "Windows";
    readonly capabilities: ProviderCapabilities;
    private readonly psCmd;
    private readonly wsl;
    private readonly P_INVOKE_BLOCK;
    constructor(options?: {
        wsl?: boolean;
    });
    /**
     * Execute a PowerShell script via the configured PS command.
     * Escapes double quotes in the script for shell invocation.
     */
    private ps;
    /**
     * Validate that a value is a finite number to prevent injection.
     */
    private validateNumber;
    /**
     * Escape a string for use inside PowerShell single quotes (double the single quotes).
     */
    private escapePsSingleQuote;
    /**
     * Get mouse button event flags.
     */
    private getMouseFlags;
    /**
     * Resolve a key name to its virtual key code.
     */
    private resolveVK;
    initialize(): Promise<void>;
    isAvailable(): Promise<boolean>;
    shutdown(): Promise<void>;
    getMousePosition(): Promise<MousePosition>;
    moveMouse(x: number, y: number, _options?: MouseMoveOptions): Promise<void>;
    click(options?: MouseClickOptions): Promise<void>;
    doubleClick(button?: MouseButton): Promise<void>;
    rightClick(): Promise<void>;
    drag(fromX: number, fromY: number, toX: number, toY: number, options?: MouseDragOptions): Promise<void>;
    scroll(options: MouseScrollOptions): Promise<void>;
    keyPress(key: KeyCode, options?: KeyPressOptions): Promise<void>;
    keyDown(key: KeyCode): Promise<void>;
    keyUp(key: KeyCode): Promise<void>;
    type(text: string, _options?: TypeOptions): Promise<void>;
    hotkey(sequence: HotkeySequence): Promise<void>;
    getActiveWindow(): Promise<WindowInfo | null>;
    getWindows(_options?: WindowSearchOptions): Promise<WindowInfo[]>;
    getWindow(handle: string): Promise<WindowInfo | null>;
    focusWindow(handle: string): Promise<void>;
    minimizeWindow(handle: string): Promise<void>;
    maximizeWindow(handle: string): Promise<void>;
    restoreWindow(handle: string): Promise<void>;
    closeWindow(handle: string): Promise<void>;
    setWindow(handle: string, options: WindowSetOptions): Promise<void>;
    getRunningApps(): Promise<AppInfo[]>;
    launchApp(appPath: string, options?: AppLaunchOptions): Promise<AppInfo>;
    closeApp(pid: number): Promise<void>;
    getScreens(): Promise<ScreenInfo[]>;
    getPixelColor(x: number, y: number): Promise<ColorInfo>;
    getClipboard(): Promise<ClipboardContent>;
    setClipboard(content: Partial<ClipboardContent>): Promise<void>;
    clearClipboard(): Promise<void>;
}
