import type { ZodType } from 'zod'; /** `exitCode` is the child bin's own (D-030): normalising a 2 into a 1 would invent a finding from a tool that never ran. */ export type CommandResult = { exitCode: number; ok: boolean; output: string; }; /** Write when the command can change a tracked file or send to a third party; `verify` is one because its tiers include the ratchet, which rewrites the baseline down. The MCP door builds its preview and confirm gate on this. */ export type CommandKind = 'read' | 'write'; /** The one registry every door reads; a door with its own list would be the second list. */ export type Command = { description: string; usage?: string; id: string; inputSchema: ZodType; kind: CommandKind; run: (input: unknown) => Promise; }; export declare const resultOf: (exitCode: number, output: string) => CommandResult; /** A refusal: the command could not be made at all. Never a finding. */ export declare const refused: (output: string) => CommandResult;