import { Journal } from "./journal.cjs";
import { MetricsRegistry } from "./metrics.cjs";
import { Mountable } from "./types.cjs";
import { MCPContent, MCPMockOptions, MCPPromptDefinition, MCPPromptResult, MCPResourceContent, MCPResourceDefinition, MCPSession, MCPToolDefinition } from "./mcp-types.cjs";
import * as http$1 from "node:http";

//#region src/mcp-mock.d.ts
declare class MCPMock implements Mountable {
  private tools;
  private resources;
  private prompts;
  private sessions;
  private server;
  private journal;
  private registry;
  private options;
  private requestHandler;
  constructor(options?: MCPMockOptions);
  addTool(def: MCPToolDefinition): this;
  onToolCall(name: string, handler: (args: unknown) => MCPContent[] | string | Promise<MCPContent[] | string>): this;
  addResource(def: MCPResourceDefinition, content?: MCPResourceContent): this;
  addPrompt(def: MCPPromptDefinition, handler?: (args: unknown) => MCPPromptResult | Promise<MCPPromptResult>): this;
  handleRequest(req: http$1.IncomingMessage, res: http$1.ServerResponse, pathname: string): Promise<boolean>;
  health(): {
    status: string;
    [key: string]: unknown;
  };
  setJournal(journal: Journal): void;
  setRegistry(registry: MetricsRegistry): void;
  start(): Promise<string>;
  stop(): Promise<void>;
  getRequests(): unknown[];
  getSessions(): Map<string, MCPSession>;
  reset(): this;
  private buildHandler;
}
//# sourceMappingURL=mcp-mock.d.ts.map
//#endregion
export { MCPMock };
//# sourceMappingURL=mcp-mock.d.cts.map