/** * Analytics event collector and batch manager * Buffers events in memory and periodically flushes to analytics server */ import { AnalyticsConfig, ToolExecutionMetadata } from './types.js'; /** * AnalyticsCollector - Manages event buffering and batch sending * Implements privacy-first analytics with automatic flushing */ export declare class AnalyticsCollector { private buffer; private config; private flushTimer; private sessionId; private sequenceNumber; private isShuttingDown; private consecutiveFailures; private circuitOpen; private circuitOpenUntil; private readonly MAX_CONSECUTIVE_FAILURES; private readonly CIRCUIT_BREAKER_RESET_MS; private errorCount; private successCount; private readonly ERROR_THRESHOLD; private lastFlushTime; private flushCount; private readonly MIN_FLUSH_INTERVAL_MS; private readonly MAX_FLUSHES_PER_HOUR; private readonly MAX_EVENTS_PER_MINUTE; private recentEventTimestamps; private readonly MAX_BUFFER_SIZE; private readonly FLUSH_INTERVAL_MS; constructor(config: AnalyticsConfig); /** * Track a tool execution event * Fails silently - analytics should never break the application */ trackToolCall(tool: string, status: 'success' | 'error', metadata?: ToolExecutionMetadata): Promise; /** * Flush buffered events to analytics server * Called automatically on timer or when buffer is full * Implements circuit breaker pattern (3.7) */ flush(): Promise; /** * Start periodic flush timer */ private startFlushTimer; /** * Stop flush timer */ private stopFlushTimer; /** * Generate unique session ID * Used for tracking tool call sequences in detailed mode */ private generateSessionId; /** * Public shutdown method called by main shutdown handler * Ensures buffered events are sent before process exits */ shutdown(): Promise; /** * Get current buffer size (for testing) */ getBufferSize(): number; /** * Get session ID (for testing) */ getSessionId(): string; } //# sourceMappingURL=collector.d.ts.map