import type { z } from "zod"; import type { ToolResult } from "../guardian/result.js"; import type { ProxmoxClient } from "../proxmox/client.js"; import type { NodeRouter } from "../ssh/nodeRouter.js"; import type { SshBatchOptions } from "../ssh/sshClient.js"; export declare const accessTierValues: readonly ["read-only", "read-execute", "full"]; export type AccessTier = (typeof accessTierValues)[number]; export declare const transportModeValues: readonly ["stdio", "http", "both"]; export type TransportCompatibility = (typeof transportModeValues)[number]; export declare const moduleScopeValues: readonly ["core", "advanced"]; export type ModuleScope = (typeof moduleScopeValues)[number]; export declare const toolCategoryValues: readonly ["nodes", "cluster", "qemu", "lxc", "storage", "backup", "tasks", "network", "firewall", "pools", "access", "templates", "monitoring", "remote"]; export type ToolCategory = (typeof toolCategoryValues)[number]; export type ToolShape = Record; export type ToolExecutionContext = { client: ProxmoxClient; ssh: SshBatchOptions; /** Resolves which cluster node hosts a guest, and how to reach it. */ router: NodeRouter; transport: "stdio" | "http"; }; export type ToolDescriptor = { name: string; title?: string; description: string; category: ToolCategory; module: ModuleScope; accessTier: AccessTier; destructive: boolean; confirmRequired: boolean; idempotent: boolean; transport: TransportCompatibility; aliases?: string[]; deprecated?: boolean; inputShape: ToolShape; argGuard?: (args: Record) => { ok: boolean; message?: string; hint?: string; }; execute: (args: Record, ctx: ToolExecutionContext) => Promise>; }; export declare const tierRank: Record; export declare const normalizeToolName: (value: string) => string; //# sourceMappingURL=toolMetadata.d.ts.map