/**
 * Dispatch table that routes HostToolRequest/HostToolResult operations to the
 * per-tool ToolContract by `kind`. Construct once and pass around.
 */
import { type ApprovalEvaluationContext, type ApprovalRequirement, type HostToolRequest, type HostToolResult, type ToolContract } from './host-tool.js';
export interface ToolRegistry {
    readonly kinds: readonly string[];
    get(kind: string): ToolContract | undefined;
    evaluateApproval(kind: string, params: unknown, context: ApprovalEvaluationContext): ApprovalRequirement;
    isHostToolRequest(value: unknown): value is HostToolRequest;
    isHostToolResult(value: unknown): value is HostToolResult;
    normalizeHostToolResult(result: HostToolResult): HostToolResult;
}
export declare function createToolRegistry(contracts: readonly ToolContract[]): ToolRegistry;
//# sourceMappingURL=host-tool-registry.d.ts.map