import type { ContractRegistry } from './registry.js'; import { type Signal, type TurnPolicy } from './turnPolicy.js'; import type { ContractsTelemetrySink } from './telemetry.js'; export interface ClassifyTurnInput { messages: ReadonlyArray<{ role: string; content: string; }>; assetManifest: { items: ReadonlyArray<{ id: string; kind: string; }>; }; sessionState: { hasPriorGenerationContext?: boolean; hasGeneratedImage?: boolean; hasGeneratedVideo: boolean; hasGeneratedAudio?: boolean; hasUploadedImage?: boolean; hasUploadedVideo: boolean; hasUploadedAudio?: boolean; hasActivePersona?: boolean; noPersonaImageInSession?: boolean; awaitingImageSelection?: boolean; pendingStitchAfterBatch?: boolean; completedWorkflow?: boolean; lastTool?: string; lastToolError?: string; repairCount: number; }; availableTools: ReadonlyArray; registry: ContractRegistry; signals: ReadonlyArray; telemetry?: ContractsTelemetrySink; } export declare function classifyTurn(input: ClassifyTurnInput): TurnPolicy; export interface ToolDefinitionLike { type: 'function'; function: { name: string; description: string; parameters: Record; }; } export interface CompileToolsForTurnInput { turnPolicy: TurnPolicy; registry: ContractRegistry; availableToolDefinitions: ReadonlyArray; telemetry?: ContractsTelemetrySink; } export interface CompiledToolset { tools: ToolDefinitionLike[]; contextBlock: string; } export declare function compileToolsForTurn(input: CompileToolsForTurnInput): CompiledToolset; export interface ToolCall { name: string; arguments: Record; } export type DispatchResult = { kind: 'execute'; args: Record; } | { kind: 'execute_with_repair'; args: Record; repairNote: string; recipeId: string; } | { kind: 'repair'; nextToolName: string; rationale: string; recipeId: string; } | { kind: 'reject'; rationale: string; gatingPolicyId: string; } | { kind: 'ask_user'; userQuestion: string; recipeId: string; }; export interface DispatchToolCallInput { call: ToolCall; turnPolicy: TurnPolicy; registry: ContractRegistry; errorCode?: string; noteContext?: Record; repairCount?: number; repairLedger?: Readonly>; telemetry?: ContractsTelemetrySink; } export declare function dispatchToolCall(input: DispatchToolCallInput): DispatchResult; //# sourceMappingURL=evaluators.d.ts.map