export interface NodeInfo { nodeId: string; address: string; services: ServiceInfo[]; timestamp: number; } export interface ServiceInfo { name: string; version?: string; } export interface DiscoveryOptions { heartbeatInterval?: number; heartbeatTTL?: number; pubSubEnabled?: boolean; pubSubChannel?: string; clientMode?: boolean; } export interface DiscoveryEvent { type: 'NODE_REGISTERED' | 'NODE_UPDATED' | 'NODE_DEREGISTERED'; nodeId: string; address: string; services: ServiceInfo[]; timestamp: number; }