import type { AimockFixture } from "./fixture-builder.js"; import type { Recording } from "./record-fixtures.js"; export interface Aimock { readonly port: number; /** Base URL with the `/v1` suffix the OpenAI SDK expects. */ readonly baseUrl: string; /** Append more fixtures onto the live mock without restarting it. */ addFixtures(fixtures: readonly AimockFixture[]): void; /** Remove all registered fixtures (the mock keeps running). */ clearFixtures(): void; /** All requests the mock has received (aimock's journal). */ getRequests(): ReadonlyArray<{ body: { messages?: Array<{ role: string; content: unknown; }>; tools?: Array<{ type?: string; function?: { name?: string; }; }>; } | null; }>; /** Current count of registered fixtures (snapshot point for getRecordingsSince). */ getFixtureCount(): number; /** * Recordings captured since the given journal length and fixture count — pairs * proxied journal entries (request) with newly-recorded fixtures (response), * both windowed to a single run so multi-run reuse can't cross-align. */ getRecordingsSince(journalStart: number, fixtureStart: number): readonly Recording[]; /** Ordered recordings (request + baked response) for proxied calls captured in record mode. */ getRecordings(): readonly Recording[]; close(): Promise; [Symbol.asyncDispose](): Promise; } export declare function createAimock(opts: { readonly fixtures: readonly AimockFixture[]; /** When set, proxy unmatched requests to the given upstream providers. */ readonly proxy?: { openai: string; }; /** With proxy: capture (record) proxied responses so getRecordings() returns them. */ readonly record?: boolean; }): Promise; //# sourceMappingURL=aimock-runner.d.ts.map