import { T as ToolCredentialScope, k as ToolDefinition, h as AnthropicToolDefinition } from './types-DjPlsx0H.js';

/**
 * Thrown when a tool's credential scope does not match the agent's scope.
 *
 * This is the runtime guardrail behind "business agents must never hold
 * credentials for personal financial accounts." A `personal`-scope tool
 * cannot register on a `business`-scope agent, and vice versa. `public`
 * tools register cleanly at any scope.
 */
declare class ToolScopeMismatchError extends Error {
    readonly toolName: string;
    readonly toolScope: ToolCredentialScope;
    readonly agentScope: ToolCredentialScope;
    constructor(args: {
        toolName: string;
        toolScope: ToolCredentialScope;
        agentScope: ToolCredentialScope;
    });
}
declare class ToolRegistry {
    private readonly tools;
    private readonly agentScope;
    constructor(agentScope: ToolCredentialScope);
    get scope(): ToolCredentialScope;
    register<TInput, TOutput>(tool: ToolDefinition<TInput, TOutput>): void;
    registerAll(tools: ReadonlyArray<ToolDefinition>): void;
    get(name: string): ToolDefinition | undefined;
    has(name: string): boolean;
    names(): string[];
    size(): number;
    /**
     * Exports the registered tools in the shape the Anthropic SDK's
     * `messages.create({ tools })` parameter expects.
     *
     * The Zod input schema is converted to JSON Schema via `zod-to-json-schema`
     * targeting OpenAPI 3 — the dialect Anthropic's tool-use endpoint accepts.
     */
    toAnthropicTools(): AnthropicToolDefinition[];
}

export { ToolRegistry as T, ToolScopeMismatchError as a };
