import { EventEmitter } from 'events'; import { Room } from './room'; import type { IAgent } from './types'; export interface AgentCard { name: string; description: string; capabilities: string[]; endpoint?: string; handler?: (message: string) => Promise; } export declare class AgentCardRegistry { private cards; private logger; register(card: AgentCard): void; unregister(name: string): void; get(name: string): AgentCard | undefined; find(query: string): AgentCard[]; send(agentName: string, message: string): Promise; list(): AgentCard[]; } export interface AgentCapability { name: string; description: string; inputSchema?: Record; outputSchema?: Record; } export interface AgentRegistration { agentName: string; capabilities: AgentCapability[]; endpoint?: string; metadata?: Record; } export interface A2ARequest { id: string; from: string; to: string; capability: string; payload: string; timestamp: number; timeout?: number; } export interface A2AResponse { requestId: string; from: string; status: 'success' | 'error' | 'timeout'; payload?: string; error?: string; timestamp: number; } export { A2AHttpServer, A2AHttpClient, NetworkRegistry } from './a2a-http'; export type { A2AHttpServerConfig, RemoteAgent } from './a2a-http'; export declare class AgentRegistry extends EventEmitter { private registrations; private agents; private room; private logger; constructor(room?: Room); register(agent: IAgent, capabilities: AgentCapability[]): void; unregister(name: string): void; discover(capability?: string): AgentRegistration[]; getAgent(name: string): IAgent | undefined; request(req: A2ARequest): Promise; call(from: string, to: string, capability: string, payload: string): Promise; } //# sourceMappingURL=a2a.d.ts.map