import type { EmbeddingProviderCallContext, EmbeddingProviderCapabilities, EmbeddingProviderInfo, EmbeddingProviderRequest, EmbeddingProviderResult, EmbeddingsProvider } from '../types/embeddings.js'; /** Options for the mock embeddings provider. */ export interface MockEmbeddingProviderOptions { /** Provider name. Defaults to `mock`. */ name?: string; /** Model reported. Defaults to `mock-embedding`. */ defaultModel?: string; /** Vector width when the request sets none. Defaults to 16. */ dimensions?: number; /** Capabilities reported, merged over the defaults. */ capabilities?: Partial; /** Reported input tokens per call. Defaults to a word count, so cost is non-zero and testable. */ usage?: (request: EmbeddingProviderRequest) => { inputTokens?: number; totalTokens?: number; }; /** Thrown on the matching call, counting from 1, to exercise retry and failover. */ failOn?: { attempt: number; error: unknown; }; /** Milliseconds to wait before answering, for timeout and cancellation tests. */ latencyMs?: number; } /** * Deterministic, network-free embeddings adapter. * * The same text always produces the same vector, so a test can assert on cache hits, batching, and * deduplication without a provider account. It records every call it received. */ export declare class MockEmbeddingProvider implements EmbeddingsProvider { private readonly options; /** Provider name, capabilities, and models. */ readonly info: EmbeddingProviderInfo; /** Every provider request this instance received, in call order. */ readonly calls: EmbeddingProviderRequest[]; private attempts; constructor(options?: MockEmbeddingProviderOptions); /** Number of provider calls made, including ones that threw. */ get callCount(): number; /** Returns deterministic vectors, one per input. */ embed(request: EmbeddingProviderRequest, context: EmbeddingProviderCallContext): Promise; }