import { z } from "zod"; import type { McpServer, RegisteredTool } from "@modelcontextprotocol/sdk/server/mcp.js"; import { type Device } from "../hil/schemas.js"; import type { ToolContext } from "../tool-context.js"; export declare const TOOL_NAME = "crosspad_usb_mode"; export declare const UsbModeInput: z.ZodObject<{ action: z.ZodEnum<{ get: "get"; set: "set"; }>; device: z.ZodOptional; mode: z.ZodOptional>; wait: z.ZodOptional; }, z.core.$strip>; export type UsbModeArgs = z.infer; export declare const O_UsbMode: { success: z.ZodBoolean; action: z.ZodOptional>; device: z.ZodOptional; mode: z.ZodOptional; requested_mode: z.ZodOptional; ports: z.ZodOptional; console: z.ZodNullable; uac2: z.ZodNullable; esp_midi: z.ZodNullable; board_rev: z.ZodNullable; }, z.core.$strip>>; ts: z.ZodOptional; resultType: z.ZodOptional; confirmation: z.ZodOptional>; error: z.ZodOptional>; details: z.ZodOptional>; }, z.core.$loose>>; details: z.ZodOptional>; tool: z.ZodOptional; hint: z.ZodOptional; }; /** The ports a profile switch actually changes, flattened for the model. */ export declare function usbModeRow(d: Device): { device: string; usb_mode: string; cdc: string | null; console: string | null; uac2: string | null; esp_midi: string | null; board_rev: string | null; }; export declare function registerUsbModeTool(server: McpServer, ctx: ToolContext): RegisteredTool;