/** * Test fixtures and helpers for Model testing. * This module provides utilities for testing Model implementations without * requiring actual API clients. */ import { Model } from '../models/model.js'; import type { Message } from '../types/messages.js'; import type { ModelStreamEvent } from '../models/streaming.js'; import type { BaseModelConfig, StreamOptions } from '../models/model.js'; /** * Test model provider that returns a predefined stream of events. * Useful for testing Model.streamAggregated() and other Model functionality * without requiring actual API calls. * * @example * ```typescript * const provider = new TestModelProvider(async function* () { * yield { type: 'modelMessageStartEvent', role: 'assistant' } * yield { type: 'modelContentBlockStartEvent' } * yield { type: 'modelContentBlockDeltaEvent', delta: { type: 'textDelta', text: 'Hello' } } * yield { type: 'modelContentBlockStopEvent' } * yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' } * }) * * const message = await collectAggregated(provider.streamAggregated(messages)) * ``` */ export declare class TestModelProvider extends Model { private eventGenerator; private config; constructor(eventGenerator?: () => AsyncGenerator); setEventGenerator(eventGenerator: () => AsyncGenerator): void; updateConfig(modelConfig: BaseModelConfig): void; getConfig(): BaseModelConfig; stream(_messages: Message[], _options?: StreamOptions): AsyncGenerator; } /** * Helper function to collect events and result from an async generator. * Properly handles AsyncGenerator where the final value is returned * rather than yielded. * * @param generator - An async generator that yields items and returns a final result * @returns Object with items array (yielded values) and result (return value) */ export declare function collectGenerator(generator: AsyncGenerator): Promise<{ items: E[]; result: R; }>; /** * Helper function to collect all items from an async iterator. * * @param stream - An async iterable that yields items * @returns Array of all yielded items */ export declare function collectIterator(stream: AsyncIterable): Promise; //# sourceMappingURL=model-test-helpers.d.ts.map