import type { AgentResponse } from '../../models/types.js'; import type { ProviderRoutingEntry } from '../../models/config-types.js'; import type { RunAgentOptions } from '../../../agents/runner.js'; import { type CompanionAgentPurpose, type CompanionCallAudit, type CompanionStructuredResponseValidator } from './review-runner.js'; export interface CompanionProviderCallContext { readonly purpose: CompanionAgentPurpose; readonly agentName: string; readonly callSequence: number; readonly attempt: number; readonly provider: ProviderRoutingEntry; } export type CompanionProviderCallCallbacksBuilder = (context: CompanionProviderCallContext) => Pick & { readonly finish: () => void; }; export declare class CompanionStructuredCaller { private readonly input; private nextCallSequence; constructor(input: { readonly cwd: string; readonly projectCwd: string; readonly failureDir: string; readonly language: 'en' | 'ja'; readonly abortSignal?: AbortSignal; readonly buildProviderCallCallbacks: CompanionProviderCallCallbacksBuilder; readonly recordUsage: (name: string, provider: ProviderRoutingEntry, success: boolean, usage: AgentResponse['providerUsage']) => void; readonly recordCall: (event: CompanionCallAudit) => void; readonly onCallAuditPersistenceFailure?: (failure: { purpose: CompanionAgentPurpose; agentName: string; attempt: number; error: unknown; }) => void; }); call(request: { readonly purpose: CompanionAgentPurpose; readonly agentName: string; readonly provider: ProviderRoutingEntry; readonly systemPrompt: string; readonly prompt: string; readonly outputSchema: Record; readonly abortSignal?: AbortSignal; readonly validateResponse?: CompanionStructuredResponseValidator; }): Promise; } //# sourceMappingURL=structured-call.d.ts.map