/**
 * MockAgentProvider — an {@link AgentProvider} with no LLM behind it.
 *
 * Exists to prove the ports-and-adapters seam: callers that go through
 * `getAgentProvider()` should work correctly against this adapter without any
 * Claude-specific assumptions leaking in. Tests script a sequence of
 * {@link AgentEvent}s per query call and can inspect which tool-server specs
 * were built.
 *
 * Not intended for production use.
 */
import type { AgentProvider, AgentQuery, AgentQueryRequest } from "../../ports/AgentProvider.js";
import type { AgentEvent } from "../../ports/events.js";
import type { ToolServerSpec } from "../../ports/tools.js";
/**
 * Opaque marker returned by {@link MockAgentProvider.buildToolServer}. Captures
 * the spec so tests can assert on what was registered without the adapter
 * having to run a real MCP server.
 */
export interface MockToolServer {
    readonly mock: true;
    readonly spec: ToolServerSpec;
}
/**
 * Captured record of a completed or in-flight query call. Populated as the
 * test drives iteration; useful for assertions.
 */
export interface MockQueryRecord {
    readonly request: AgentQueryRequest;
    readonly events: AgentEvent[];
    closed: boolean;
}
export interface MockAgentProviderOptions {
    /** Default event script returned from every `query()` call. */
    events?: readonly AgentEvent[];
    /** Per-call override — if set and non-empty, consumes the head on each `query()` call. */
    eventScripts?: readonly (readonly AgentEvent[])[];
    /** Value returned from accountInfo(). */
    accountInfo?: Record<string, unknown> | null;
    /** Value returned from supportedModels(). */
    supportedModels?: Array<{
        value: string;
        displayName: string;
        description: string;
    }>;
}
export declare class MockAgentProvider implements AgentProvider {
    readonly kind: "mock";
    /** Records of every `query()` call made; tests can inspect these. */
    readonly queryRecords: MockQueryRecord[];
    /** Every spec passed to `buildToolServer`; tests can inspect these. */
    readonly toolSpecs: ToolServerSpec[];
    private readonly defaultEvents;
    private readonly scripts;
    private scriptIndex;
    private readonly accountInfoValue;
    private readonly supportedModelsValue;
    constructor(options?: MockAgentProviderOptions);
    query(req: AgentQueryRequest): AgentQuery;
    buildToolServer(spec: ToolServerSpec): MockToolServer;
}
//# sourceMappingURL=MockAgentProvider.d.ts.map