import { z } from 'zod'; import type { ComputerUseHost } from '../../types/computer-use/index.js'; import type { ToolDefinition } from '../../types/tool/index.js'; export declare const COMPUTER_USE_TOOL_NAME: "computer_use"; declare const actionSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"screenshot">; }, "strip", z.ZodTypeAny, { type: "screenshot"; }, { type: "screenshot"; }>, z.ZodObject<{ type: z.ZodLiteral<"cursor_position">; }, "strip", z.ZodTypeAny, { type: "cursor_position"; }, { type: "cursor_position"; }>, z.ZodObject<{ type: z.ZodLiteral<"mouse_move">; to: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; }, "strip", z.ZodTypeAny, { y: number; x: number; }, { y: number; x: number; }>; }, "strip", z.ZodTypeAny, { type: "mouse_move"; to: { y: number; x: number; }; }, { type: "mouse_move"; to: { y: number; x: number; }; }>, z.ZodObject<{ type: z.ZodLiteral<"mouse_click">; at: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; }, "strip", z.ZodTypeAny, { y: number; x: number; }, { y: number; x: number; }>; button: z.ZodEnum<["left", "right", "middle"]>; }, "strip", z.ZodTypeAny, { at: { y: number; x: number; }; type: "mouse_click"; button: "left" | "right" | "middle"; }, { at: { y: number; x: number; }; type: "mouse_click"; button: "left" | "right" | "middle"; }>, z.ZodObject<{ type: z.ZodLiteral<"mouse_drag">; from: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; }, "strip", z.ZodTypeAny, { y: number; x: number; }, { y: number; x: number; }>; to: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; }, "strip", z.ZodTypeAny, { y: number; x: number; }, { y: number; x: number; }>; button: z.ZodEnum<["left", "right", "middle"]>; }, "strip", z.ZodTypeAny, { type: "mouse_drag"; from: { y: number; x: number; }; to: { y: number; x: number; }; button: "left" | "right" | "middle"; }, { type: "mouse_drag"; from: { y: number; x: number; }; to: { y: number; x: number; }; button: "left" | "right" | "middle"; }>, z.ZodObject<{ type: z.ZodLiteral<"scroll">; at: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; }, "strip", z.ZodTypeAny, { y: number; x: number; }, { y: number; x: number; }>; direction: z.ZodEnum<["up", "down", "left", "right"]>; amount: z.ZodNumber; }, "strip", z.ZodTypeAny, { at: { y: number; x: number; }; type: "scroll"; amount: number; direction: "left" | "right" | "up" | "down"; }, { at: { y: number; x: number; }; type: "scroll"; amount: number; direction: "left" | "right" | "up" | "down"; }>, z.ZodObject<{ type: z.ZodLiteral<"type_text">; text: z.ZodString; }, "strip", z.ZodTypeAny, { text: string; type: "type_text"; }, { text: string; type: "type_text"; }>, z.ZodObject<{ type: z.ZodLiteral<"key">; keys: z.ZodString; }, "strip", z.ZodTypeAny, { keys: string; type: "key"; }, { keys: string; type: "key"; }>]>; /** * The tool's input, inferred from its schema. * * Exported because `createComputerUseTool` returns a `ToolDefinition` * and a consumer typing that variable, or writing a wrapper around it, had no * name for the parameter — the type was module-private while the function * carrying it was public. */ export type ActionInput = z.infer; /** * Factory: given a ComputerUseHost (provided by the consumer — e.g. * @namzu/computer-use's SubprocessComputerUseHost), returns a ToolDefinition * that routes the discriminated action to the host and maps results back to * the SDK's ToolResult shape. * * The tool's description reflects the host's frozen capabilities, and any * action targeting an unavailable capability is rejected with a clear error * rather than hanging or failing silently. * * @example * ```ts * import { SubprocessComputerUseHost } from '@namzu/computer-use' * import { createComputerUseTool } from '@namzu/sdk' * * const host = new SubprocessComputerUseHost() * await host.initialize?.() * registry.register(createComputerUseTool(host)) * ``` */ export declare function createComputerUseTool(host: ComputerUseHost): ToolDefinition; export {}; //# sourceMappingURL=computer-use.d.ts.map