/** The shape every tool handler returns; kept structural so registrars need no SDK type import. */ type McpToolResult = { content: Array<{ type: "text"; text: string; }>; isError?: boolean; }; /** * Run a DATA tool behind the fleet ladder's refusal. * * The body is expected to go through `requireSkillsReadAccess()` / * `getBrowseRegistry()` (lib/read-access.ts) before it reads the bundled * catalog or the on-machine corpus. When the ladder refuses — no credential, no * authority, no `HASNA_SKILLS_LOCAL=1` opt-in; an authority with no key; a * deliberate selection that cannot be honoured — the refusal comes back as the * same `AUTH_REQUIRED` result `get_run_status` already gives, never as the * local answer. Any other failure propagates unchanged (the SDK reports it as * a tool error with its message). */ export declare function readSurface(body: () => Promise): Promise; export declare function stripNulls(obj: Record): Record; export declare function cacheGet(key: string): unknown | undefined; export declare function cacheSet(key: string, value: unknown): void; export declare function cacheClear(): void; /** Structured MCP error response */ export declare function mcpError(code: string, message: string, suggestions?: string[]): { content: { type: "text"; text: string; }[]; isError: boolean; }; export declare function mcpJson(payload: unknown, pretty?: boolean): { content: { type: "text"; text: string; }[]; }; export declare function remoteRunNextActions(runId: string | undefined): { poll: string; download: string; } | undefined; export declare const TOOL_DESCRIPTIONS: Record; export {};