import type { MediaAnswer, MediaAnswerRequest, MediaDescribeRequest, MediaDescription, MediaInput, MediaProvider, MediaProviderInfo, MediaReadRequest, MediaText, MediaTask } from './index.js'; /** Options for the mock media provider: what it finds in each medium. */ export interface MockMediaProviderOptions { /** Its name. Defaults to `mock-media`. */ name?: string; /** The tasks it performs. Defaults to all three. */ tasks?: readonly MediaTask[]; /** Each page's text in a medium. Defaults to one page naming its kind. */ read?: (media: MediaInput) => readonly string[]; /** A medium's caption. Defaults to its kind. */ describe?: (media: MediaInput) => string; /** The answer to a question about media. Defaults to the first page of the first medium. */ answer?: (media: readonly MediaInput[], question: string) => string; } /** * A deterministic media provider, for tests: it finds in each medium what the options say, so a test * can drive reading, describing, answering, and media retrieval without a model. It keeps every * request it was given in `calls`. */ export declare class MockMediaProvider implements MediaProvider { private readonly options; /** Its name and capabilities. */ readonly info: MediaProviderInfo; /** Every request, in order, with its task. */ readonly calls: Array<{ task: MediaTask; media: readonly MediaInput[]; }>; constructor(options?: MockMediaProviderOptions); /** The pages the options give the medium. */ read(request: MediaReadRequest): Promise; /** The caption the options give the medium. */ describe(request: MediaDescribeRequest): Promise; /** The answer the options give. */ answer(request: MediaAnswerRequest): Promise; }