import type { Options, Query, SdkMessage } from "@yanlinglabs/winter-agent-sdk"; import type { RuntimeSdkPeers } from "../sdk.js"; export interface RecordedQueryCall { prompt: string | AsyncIterable; options: Options; } export interface FakeWinterPeer { /** Pass this as `peers.winter`. */ peer: RuntimeSdkPeers["winter"]; /** Every `query()` the router made, in order, with the values it forwarded. */ calls: RecordedQueryCall[]; /** The exact message objects the fake yields — for identity assertions on the stream. */ scripted: SdkMessage[]; } export interface FakeWinterPeerOptions { /** * The package version the fake reports as its own identity (probe step 1, `peer-export`). * Defaults to a version INSIDE the matrix so a test that does not care about versions constructs * cleanly; pass an out-of-range value to exercise the refusal. */ packageVersion?: string; /** Defaults to the one protocol version this router is tested against. */ protocolVersion?: string; /** What the returned `Query` yields, in order. Defaults to one result-shaped message. */ messages?: SdkMessage[]; /** Called instead of the default generator, when a test needs the Query itself to misbehave. */ query?: (args: { prompt: string | AsyncIterable; options: Options; }) => Query; } /** A Winter peer that records what the router forwarded. See this module's header for the cast. */ export declare function createFakeWinterPeer(options?: FakeWinterPeerOptions): FakeWinterPeer;