/** * Comprehensive test runner for LLM service * Coordinates all test suites and provides utilities */ export interface TestSuite { name: string; tests: TestCase[]; } export interface TestCase { name: string; run: () => Promise; timeout?: number; retries?: number; } export interface TestResults { total: number; passed: number; failed: number; skipped: number; duration: number; suites: SuiteResult[]; } export interface SuiteResult { name: string; tests: TestResult[]; duration: number; } export interface TestResult { name: string; status: "passed" | "failed" | "skipped"; error?: Error; duration: number; } /** * Test configuration for LLM service */ export declare const testConfig: { timeout: number; retries: number; parallel: boolean; providers: { google: { enabled: boolean; models: string[]; apiKey: string | undefined; }; openai: { enabled: boolean; models: string[]; apiKey: string | undefined; }; anthropic: { enabled: boolean; models: string[]; apiKey: string | undefined; }; }; skipPatterns: { api: boolean; network: boolean; expensive: boolean; }; }; /** * Test execution utilities */ export declare class TestRunner { private results; runTest(test: TestCase): Promise; runSuite(suite: TestSuite): Promise; runAll(suites: TestSuite[]): Promise; printResults(): void; } /** * Test utilities */ export declare const testUtils: { /** * Check if a test should be skipped */ shouldSkip(condition: boolean, reason: string): boolean; /** * Create a test case */ createTest(name: string, run: () => Promise, options?: { timeout?: number; retries?: number; skip?: boolean; skipReason?: string; }): TestCase; /** * Wait for a specified duration */ sleep(ms: number): Promise; /** * Retry a function with exponential backoff */ retry(fn: () => Promise, retries?: number, delay?: number): Promise; }; /** * Environment validation */ export declare const envValidation: { checkApiKeys(): { valid: boolean; missing: string[]; }; printEnvStatus(): void; }; export declare const runner: TestRunner; //# sourceMappingURL=test-runner.d.ts.map