/** * Regional Agent - Per-region agent implementation for distributed processing * * Handles: * - Region-specific initialization * - Local query processing * - Cross-region communication * - State synchronization * - Metrics reporting */ import { EventEmitter } from 'events'; export interface RegionalAgentConfig { agentId: string; region: string; coordinatorEndpoint: string; localStoragePath: string; maxConcurrentStreams: number; metricsReportInterval: number; syncInterval: number; enableClaudeFlowHooks: boolean; vectorDimensions: number; capabilities: string[]; } export interface QueryRequest { id: string; vector: number[]; topK: number; filters?: Record; timeout: number; } export interface QueryResult { id: string; matches: Array<{ id: string; score: number; metadata: Record; }>; latency: number; region: string; } export interface SyncPayload { type: 'index' | 'update' | 'delete'; data: any; timestamp: number; sourceRegion: string; } export declare class RegionalAgent extends EventEmitter { private config; private activeStreams; private totalQueries; private totalLatency; private metricsTimer?; private syncTimer?; private localIndex; private syncQueue; private rateLimiter; constructor(config: RegionalAgentConfig); /** * Initialize regional agent */ private initialize; /** * Load local index from persistent storage */ private loadLocalIndex; /** * Register with coordinator */ private registerWithCoordinator; /** * Process query request locally */ processQuery(request: QueryRequest): Promise; /** * Validate query request */ private validateQuery; /** * Search vectors in local index */ private searchVectors; /** * Calculate cosine similarity between vectors */ private calculateSimilarity; /** * Check if metadata matches filters */ private matchesFilters; /** * Add/update vectors in local index */ indexVectors(vectors: Array<{ id: string; vector: number[]; metadata?: Record; }>): Promise; /** * Delete vectors from local index */ deleteVectors(ids: string[]): Promise; /** * Handle sync payload from other regions */ handleSyncPayload(payload: SyncPayload): Promise; /** * Start metrics reporting loop */ private startMetricsReporting; /** * Report metrics to coordinator */ private reportMetrics; /** * Get CPU usage (placeholder) */ private getCpuUsage; /** * Get memory usage (placeholder) */ private getMemoryUsage; /** * Check if agent is healthy */ private isHealthy; /** * Start sync process loop */ private startSyncProcess; /** * Process sync queue (send to other regions) */ private processSyncQueue; /** * Get agent status */ getStatus(): { agentId: string; region: string; healthy: boolean; activeStreams: number; indexSize: number; syncQueueSize: number; avgQueryLatency: number; }; /** * Shutdown agent gracefully */ shutdown(): Promise; /** * Save local index to persistent storage */ private saveLocalIndex; } //# sourceMappingURL=regional-agent.d.ts.map