import { Journal } from "./journal.js";
import { MetricsRegistry } from "./metrics.js";
import { Mountable } from "./types.js";
import { A2AAgentDefinition, A2AArtifact, A2AMockOptions, A2APart, A2AStreamEvent } from "./a2a-types.js";
import * as http$1 from "node:http";

//#region src/a2a-mock.d.ts
declare class A2AMock implements Mountable {
  private agents;
  private tasks;
  private server;
  private journal;
  private registry;
  private options;
  private baseUrl;
  private dispatcher;
  constructor(options?: A2AMockOptions);
  private buildDispatcher;
  registerAgent(def: A2AAgentDefinition): this;
  onMessage(agentName: string, pattern: string | RegExp, parts: A2APart[]): this;
  onTask(agentName: string, pattern: string | RegExp, artifacts: A2AArtifact[]): this;
  onStreamingTask(agentName: string, pattern: string | RegExp, events: A2AStreamEvent[], delayMs?: number): this;
  handleRequest(req: http$1.IncomingMessage, res: http$1.ServerResponse, pathname: string): Promise<boolean>;
  health(): {
    status: string;
    agents: number;
    tasks: number;
  };
  setJournal(journal: Journal): void;
  setRegistry(registry: MetricsRegistry): void;
  start(): Promise<string>;
  stop(): Promise<void>;
  get url(): string;
  reset(): this;
  setBaseUrl(url: string): void;
  private handleStreamingMessage;
}
//# sourceMappingURL=a2a-mock.d.ts.map
//#endregion
export { A2AMock };
//# sourceMappingURL=a2a-mock.d.ts.map