import { Message, RunResult, MockModel, TestModel, FunctionModel } from '../types/agent'; export interface TestModelResponse { content: string; toolCalls?: Array<{ name: string; arguments: Record; }>; } export declare class TestModelClient { private model; private logger; private callCount; constructor(model: MockModel); chatCompletion(options: { model: string; messages: Array<{ role: string; content: string; }>; maxTokens?: number; temperature?: number; }): Promise<{ choices: Array<{ message: { role: string; content: string; }; }>; usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number; }; }>; private handleTestModel; private handleFunctionModel; private generateToolCallResponse; private generateSingleToolCallResponse; private estimateTokens; getCallCount(): number; reset(): void; } export declare function createTestModel(responses: string[], toolBehavior?: 'call_all' | 'call_first' | 'call_none'): TestModel; export declare function createFunctionModel(handler: (messages: Message[]) => Promise | string): FunctionModel; export declare const CommonTestModels: { echo: FunctionModel; fixed: (response: string) => TestModel; cycle: (responses: string[]) => TestModel; toolCaller: TestModel; error: FunctionModel; json: (data: any) => FunctionModel; conditional: (conditions: Array<{ condition: (messages: Message[]) => boolean; response: string; }>, defaultResponse?: string) => FunctionModel; conversational: () => FunctionModel; }; export declare class AgentTestUtilities { private static logger; static createMockDeps(overrides?: Partial): T; static createMessageHistory(exchanges: Array<{ user: string; assistant: string; }>): Message[]; static assertToolCalled(result: RunResult, toolName: string, expectedArgs?: Record): void; static assertToolCallCount(result: RunResult, expectedCount: number): void; static assertOutputType(result: RunResult, validator: (output: T) => boolean, message?: string): void; static createTestHarness(agentFactory: (deps: TDeps) => any, defaultDeps: TDeps): { run(input: string, depsOverrides?: Partial, options?: any): Promise>; runWithHistory(input: string, history: Message[], depsOverrides?: Partial): Promise>; createDeps: (overrides?: Partial) => TDeps & Partial; }; } declare global { namespace jest { interface Matchers { toHaveCalledTool(toolName: string, args?: Record): R; toHaveToolCallCount(count: number): R; toHaveValidOutput(validator: (output: T) => boolean): R; } } } export declare const agentMatchers: { toHaveCalledTool(received: RunResult, toolName: string, expectedArgs?: Record): { message: () => string; pass: boolean; }; toHaveToolCallCount(received: RunResult, expectedCount: number): { message: () => string; pass: boolean; }; toHaveValidOutput(received: RunResult, validator: (output: T) => boolean): { message: () => string; pass: boolean; }; }; export declare function setupAgentTesting(): void; //# sourceMappingURL=test-models.d.ts.map