/** * Privacy-respecting telemetry for GitMem * * - Opt-in only (disabled by default) * - No PII (queries, scars, project names, IPs) * - Transparent (local logs visible before sending) * - Anonymous (random session IDs, not persistent) * - Controllable (enable/disable/show/clear) */ export declare class Telemetry { private configPath; private logPath; private config; private version; constructor(gitmemDir: string, version: string); /** * Load telemetry config from disk */ private loadConfig; /** * Save config to disk */ private saveConfig; /** * Generate random session ID (8 hex chars, not persistent) */ private generateSessionId; /** * Check if telemetry is enabled */ isEnabled(): boolean; /** * Enable telemetry (user consent) */ enable(): void; /** * Disable telemetry */ disable(): void; /** * Log an event (always writes to local log, sends if enabled) */ track(eventData: { event: string; tool?: string; success?: boolean; duration_ms?: number; result_count?: number; error_type?: string; mcp_host?: string; }): Promise; /** * Write event to local log file */ private logToFile; /** * Send event to telemetry endpoint (background, non-blocking) */ private sendEvent; /** * Detect tier (free vs pro) */ private detectTier; /** * Get telemetry status for CLI display */ getStatus(): { enabled: boolean; session_id: string; event_count: number; consent_version: string; consented_at?: string; }; /** * Get recent events for CLI display */ getRecentEvents(limit?: number): string[]; /** * Clear local telemetry log */ clearLog(): void; /** * Format event for human-readable display */ static formatEvent(eventJson: string): string; } export declare function getTelemetry(gitmemDir: string, version: string): Telemetry; /** * Track a tool call */ export declare function trackToolCall(args: { gitmemDir: string; version: string; tool: string; success: boolean; duration_ms: number; result_count?: number; error_type?: string; mcp_host?: string; }): Promise; //# sourceMappingURL=telemetry.d.ts.map