import type { Api, Model, ResolveToolChoiceResult, ToolChoice } from "@gajae-code/ai/core"; /** * Build a provider-aware tool choice that targets one specific tool when supported. * Providers that only expose required/any forcing may still honor named choices by * narrowing their request tool list before transport. */ export interface NamedToolChoiceResult { choice: ToolChoice | undefined; exactNamed: boolean; resolved?: ResolveToolChoiceResult; } export declare function buildNamedToolChoiceResult(toolName: string, model?: Model): NamedToolChoiceResult; /** * Legacy capability-aware wrapper. May return a lossy `"required"` when named * forcing degrades (e.g. Google APIs, or compat `toolChoiceSupport: "required"`), * which forces *some* tool rather than `toolName` specifically. Queue directives * that need exact tool identity (resolve / todo_write / yield) MUST use * `buildNamedToolChoiceResult` and gate on `exactNamed` instead. */ export declare function buildNamedToolChoice(toolName: string, model?: Model): ToolChoice | undefined;