import type { ConversationToolCall, ToolDefinitionInput } from "../generated/graphql-types.js";
import type { ToolVisibilityResult } from "../types/agent.js";
export interface ProviderToolChoicePolicy {
    requireTool: boolean;
    requiredToolName?: string;
}
export declare class RequiredToolChoiceError extends Error {
    readonly code = "required_tool_choice_violation";
    readonly requiredToolName?: string;
    readonly actualToolNames: string[];
    constructor(args: {
        message: string;
        requiredToolName?: string;
        actualToolNames?: string[];
    });
}
export declare function normalizeToolVisibilityResult(fallbackTools: ToolDefinitionInput[] | undefined, result: ToolDefinitionInput[] | ToolVisibilityResult | undefined): ToolVisibilityResult;
export declare function deriveProviderToolChoicePolicy(visibility: ToolVisibilityResult): ProviderToolChoicePolicy | undefined;
export declare function assertRequiredToolChoiceConfig(visibility: ToolVisibilityResult): void;
export declare function validateRequiredToolChoice(visibility: ToolVisibilityResult, toolCalls: ConversationToolCall[] | undefined): void;
export declare function toOpenAIChatToolChoice(policy: ProviderToolChoicePolicy | undefined): unknown | undefined;
export declare function toOpenAIResponsesToolChoice(policy: ProviderToolChoicePolicy | undefined): unknown | undefined;
export declare function toAnthropicToolChoice(policy: ProviderToolChoicePolicy | undefined): unknown | undefined;
export declare function toGoogleToolConfig(policy: ProviderToolChoicePolicy | undefined): unknown | undefined;
