import type { Client } from "@modelcontextprotocol/sdk/client/index.js"; import type { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; import type { HttpServer, HttpServerHandle } from "./http-server.js"; import { type TokenVerifier } from "./auth.js"; export { createTestMcpServer, installInMemoryHttp, nodeFetch } from "./test-support.js"; export interface HttpTestPair { client: Client; transport: StreamableHTTPClientTransport; handle: HttpServerHandle; url: string; cleanup(): Promise; } export interface TinyHttpRequestLogEntry { method: string; sessionId: string | null; jsonRpcMethod?: string; responseContentType?: string | null; } export interface TinyHttpTestPair { client: { listTools(): Promise<{ tools: Array<{ name: string; }>; }>; callTool(params: { name: string; arguments?: Record; }): Promise<{ content: unknown[]; isError?: boolean; }>; close(): Promise; }; transport: unknown; handle: HttpServerHandle; url: string; requests: TinyHttpRequestLogEntry[]; cleanup(): Promise; } export interface InMemoryAccessTokenInput { token?: string; issuer: string; audience: readonly string[]; scopes: readonly string[]; expiresAt: number; claims?: Record; subject?: string; clientId?: string; } export interface InMemoryTokenVerifier { verifier: TokenVerifier; issueToken(input: InMemoryAccessTokenInput): string; } export declare function createInMemoryTokenVerifier(options?: Partial<{ now: () => number; }>): InMemoryTokenVerifier; export declare function createHttpTestPair(server: HttpServer): Promise; export declare function createHttpTestPairWithTinyClient(server: HttpServer): Promise;