import { WorkspaceScopedResource } from './base.js';
interface CreateDesktopSessionRequest {
    integration_name: string;
}
type DesktopActionKind = 'click' | 'double_click' | 'type' | 'key' | 'scroll' | 'move' | 'drag' | 'clipboard_type';
interface DesktopActionRequest {
    amount?: number | null;
    button?: string | null;
    direction?: 'up' | 'down' | 'left' | 'right' | null;
    key?: string | null;
    text?: string | null;
    type: DesktopActionKind;
    x?: number | null;
    x1?: number | null;
    x2?: number | null;
    y?: number | null;
    y1?: number | null;
    y2?: number | null;
}
interface DesktopSessionResponse {
    connected: boolean;
    display_size: number[];
    session_id: string;
}
interface DesktopActionResponse {
    ok: boolean;
}
interface DesktopDisconnectResponse {
    ok: boolean;
}
interface DesktopScreenshotResponse {
    [key: string]: unknown;
}
interface DesktopSessionStatusResponse {
    connected: boolean;
    created_at: number;
    healthy: boolean;
    idle_seconds: number;
    session_id: string;
}
/**
 * Desktop sessions — remote-controlled desktop instances the agent can use
 * to drive third-party apps (EHRs, CRMs) that lack APIs. Created on demand
 * and torn down when the agent finishes the workflow.
 *
 * @beta New in this release; surface may evolve.
 */
export declare class DesktopSessionsResource extends WorkspaceScopedResource {
    /** Spin up a new desktop session */
    create(body: CreateDesktopSessionRequest): Promise<DesktopSessionResponse & import("../index.js").ResponseMetadata>;
    /** Disconnect / tear down a desktop session */
    disconnect(sessionId: string): Promise<DesktopDisconnectResponse & import("../index.js").ResponseMetadata>;
    /** Drive a click / type / scroll action against the session */
    sendAction(sessionId: string, body: DesktopActionRequest): Promise<DesktopActionResponse & import("../index.js").ResponseMetadata>;
    /** Get the latest screenshot for a session */
    getScreenshot(sessionId: string): Promise<DesktopScreenshotResponse & import("../index.js").ResponseMetadata>;
    /** Get the session's current connection + activity status */
    getStatus(sessionId: string): Promise<DesktopSessionStatusResponse & import("../index.js").ResponseMetadata>;
}
export {};
//# sourceMappingURL=desktop-sessions.d.ts.map