import type { LanguageModel } from "../language-model.ts"; import type { LanguageModelInput, ModelResponse, PartialModelResponse } from "../types.ts"; /** * A result for a mocked `generate` call. * It can either be a full response or an error to throw. */ export type MockGenerateResult = { response: ModelResponse; } | { error: Error; }; /** * A result for a mocked `stream` call. * It can either be a set of partial responses or an error to throw. */ export type MockStreamResult = { partials: PartialModelResponse[]; } | { error: Error; }; /** * A mock language model for testing purposes * that tracks inputs and allows mocking outputs. */ export declare class MockLanguageModel implements LanguageModel { #private; /** * Tracked inputs for `generate` calls. * This can be used to assert that the correct inputs were passed to the model. */ trackedGenerateInputs: LanguageModelInput[]; /** * Tracked inputs for `stream` calls. * This can be used to assert that the correct inputs were passed to the model. */ trackedStreamInputs: LanguageModelInput[]; provider: string; modelId: string; constructor(); generate(input: LanguageModelInput): Promise; stream(input: LanguageModelInput): AsyncGenerator; /** * Mock a full response for the next call to `generate`. */ enqueueGenerateResult(...result: MockGenerateResult[]): void; /** * Mock a set of partial responses for the next call to `stream`. */ enqueueStreamResult(...result: MockStreamResult[]): void; /** * Reset the tracked inputs. */ reset(): void; /** * Restore the mock to its initial state (clear mocked results and tracked inputs). */ restore(): void; }