export type DisplayServer = 'darwin' | 'win32' | 'x11' | 'wayland' | 'unknown';
export declare function assertDisplayServer(value: DisplayServer): void;
export interface ComputerUseCapabilities {
    readonly displayServer: DisplayServer;
    readonly screenshot: boolean;
    readonly mouse: boolean;
    readonly keyboard: boolean;
    readonly cursorPosition: boolean;
    readonly clipboard: boolean;
}
export interface DisplayGeometry {
    readonly width: number;
    readonly height: number;
    readonly scaleFactor: number;
}
export interface ScreenshotResult {
    readonly data: Buffer;
    readonly mimeType: 'image/png';
    readonly width: number;
    readonly height: number;
}
export interface Point {
    readonly x: number;
    readonly y: number;
}
export type MouseButton = 'left' | 'right' | 'middle';
export type ScrollDirection = 'up' | 'down' | 'left' | 'right';
export type ComputerUseAction = {
    readonly type: 'screenshot';
} | {
    readonly type: 'cursor_position';
} | {
    readonly type: 'mouse_move';
    readonly to: Point;
} | {
    readonly type: 'mouse_click';
    readonly at: Point;
    readonly button: MouseButton;
} | {
    readonly type: 'mouse_drag';
    readonly from: Point;
    readonly to: Point;
    readonly button: MouseButton;
} | {
    readonly type: 'scroll';
    readonly at: Point;
    readonly direction: ScrollDirection;
    readonly amount: number;
} | {
    readonly type: 'type_text';
    readonly text: string;
} | {
    readonly type: 'key';
    readonly keys: string;
};
export declare function assertComputerUseActionType(type: ComputerUseAction['type']): void;
export type ComputerUseResult = {
    readonly type: 'screenshot';
    readonly result: ScreenshotResult;
} | {
    readonly type: 'cursor_position';
    readonly point: Point;
} | {
    readonly type: 'ok';
};
export interface ComputerUseHost {
    readonly id: string;
    readonly capabilities: ComputerUseCapabilities;
    getDisplayGeometry(): Promise<DisplayGeometry>;
    execute(action: ComputerUseAction): Promise<ComputerUseResult>;
    initialize?(): Promise<void>;
    dispose?(): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map