/** * H3-DAC Agent Discovery & Authentication * Agents can discover and authenticate each other using DID and signatures */ import { ethers } from 'ethers'; /** * Agent authentication challenge/response */ export interface AgentChallenge { challenge: string; timestamp: number; requesterDID: string; ttl: number; } export interface AgentResponse { challenge: string; signature: string; agentDID: string; publicKey: string; capabilities: string[]; endpoint: string; } /** * Agent connection state */ export interface AgentConnection { agentId: string; did: string; address: string; h3Index: string; capabilities: string[]; endpoint: string; authenticated: boolean; lastSeen: number; reputation: number; } /** * Agent Discovery Manager * Handles peer discovery, authentication, and connection management */ export declare class AgentDiscovery { private myIdentity; private signer; private knownAgents; private pendingChallenges; constructor(myIdentity: any, signer: ethers.Signer); /** * Create authentication challenge for another agent */ createChallenge(targetDID: string): Promise; /** * Respond to authentication challenge */ respondToChallenge(challenge: AgentChallenge): Promise; /** * Verify authentication response from another agent */ verifyResponse(response: AgentResponse): Promise; /** * Add agent to known peers */ private addKnownAgent; /** * Get all authenticated agents */ getKnownAgents(): AgentConnection[]; /** * Find agents by capability */ findByCapability(capability: string): AgentConnection[]; /** * Find nearby agents (within H3 distance) */ findNearbyAgents(maxDistance?: number): AgentConnection[]; /** * Check if agent is trusted */ isAgentTrusted(agentId: string): boolean; /** * Update agent reputation */ updateReputation(agentId: string, delta: number): void; /** * Handshake: Complete authentication flow */ handshake(targetDID: string, targetEndpoint: string): Promise; /** * Mutual authentication between two agents */ static mutualAuth(agent1: AgentDiscovery, agent2: AgentDiscovery): Promise; /** * Export known agents */ exportKnownAgents(): string; /** * Import known agents */ importKnownAgents(json: string): void; } /** * Agent Network - Manages multiple agent connections */ export declare class AgentNetwork { private agents; /** * Add agent to network */ addAgent(agentId: string, discovery: AgentDiscovery): void; /** * Broadcast message to all agents with capability */ broadcast(capability: string, message: string): Promise>; /** * Find agent by DID */ findAgent(did: string): AgentDiscovery | undefined; /** * Get network statistics */ getStats(): { totalAgents: number; authenticatedConnections: number; totalConnections: number; averageReputation: number; }; } /** * Example Usage: * * ```typescript * // Create two agents * const agent1Identity = await H3AgentIdentity.createFromCoordinates(...); * const agent2Identity = await H3AgentIdentity.createFromCoordinates(...); * * const agent1Discovery = new AgentDiscovery(agent1Identity, signer1); * const agent2Discovery = new AgentDiscovery(agent2Identity, signer2); * * // Mutual authentication * const authenticated = await AgentDiscovery.mutualAuth( * agent1Discovery, * agent2Discovery * ); * * // Find agents with payment capability * const paymentAgents = agent1Discovery.findByCapability('payment'); * * // Find nearby agents * const nearby = agent1Discovery.findNearbyAgents(5); * * // Check if agent is trusted * const trusted = agent1Discovery.isAgentTrusted(agent2Identity.agentId); * ``` */ //# sourceMappingURL=discovery.d.ts.map