/** * Telemetry - Usage tracking and analytics */ export interface TelemetryEvent { name: string; timestamp: number; properties?: Record; userId?: string; sessionId?: string; } export interface TelemetryConfig { enabled?: boolean; endpoint?: string; batchSize?: number; flushInterval?: number; } /** * Telemetry collector for tracking usage */ export declare class TelemetryCollector { private events; private enabled; private endpoint?; private batchSize; private flushInterval; private flushTimer?; private userId?; private sessionId; constructor(config?: TelemetryConfig); private checkEnabled; /** * Track an event */ track(name: string, properties?: Record): void; /** * Track feature usage */ trackFeatureUsage(feature: string, metadata?: Record): void; /** * Track agent execution */ trackAgentExecution(agentName: string, duration: number, success: boolean): void; /** * Track tool call */ trackToolCall(toolName: string, duration: number, success: boolean): void; /** * Track LLM call */ trackLLMCall(provider: string, model: string, tokens: number, duration: number): void; /** * Track error */ trackError(error: string, context?: Record): void; /** * Set user ID */ setUserId(userId: string): void; /** * Flush events */ flush(): Promise; /** * Enable telemetry */ enable(): void; /** * Disable telemetry */ disable(): void; /** * Check if telemetry is enabled */ isEnabled(): boolean; /** * Get pending events count */ getPendingCount(): number; /** * Cleanup resources */ cleanup(): void; private startFlushTimer; private stopFlushTimer; private generateSessionId; } /** * Get global telemetry instance */ export declare function getTelemetry(): TelemetryCollector; /** * Enable telemetry */ export declare function enableTelemetry(): void; /** * Disable telemetry */ export declare function disableTelemetry(): void; /** * Cleanup telemetry resources */ export declare function cleanupTelemetry(): void; /** * AgentTelemetry - Agent-focused telemetry wrapper * * @example Simple usage (3 lines) * ```typescript * import { Agent } from 'praisonai'; * * // Enable telemetry on agent * const agent = new Agent({ * instructions: 'You are helpful', * telemetry: true // Opt-in telemetry * }); * await agent.chat('Hello!'); // Automatically tracked * ``` * * @example Manual tracking * ```typescript * import { AgentTelemetry } from 'praisonai'; * * const telemetry = new AgentTelemetry('MyAgent'); * const result = await telemetry.trackChat(async () => { * return await agent.chat('Hello!'); * }); * console.log(telemetry.getStats()); * ``` */ export interface AgentStats { totalChats: number; successfulChats: number; failedChats: number; totalDuration: number; avgDuration: number; totalTokens: number; toolCalls: number; } export declare class AgentTelemetry { private agentName; private collector; private stats; constructor(agentName: string, config?: TelemetryConfig); /** * Track a chat execution */ trackChat(fn: () => Promise): Promise; /** * Track a tool call */ trackToolCall(toolName: string, duration: number, success: boolean): void; /** * Track token usage */ trackTokens(tokens: number): void; /** * Get agent statistics */ getStats(): AgentStats; /** * Reset statistics */ resetStats(): void; /** * Get success rate */ getSuccessRate(): number; /** * Print summary */ printSummary(): void; } /** * Create agent telemetry */ export declare function createAgentTelemetry(agentName: string, config?: TelemetryConfig): AgentTelemetry; /** * MinimalTelemetry - Lightweight telemetry with minimal overhead. * Python parity with praisonaiagents/telemetry/telemetry.py MinimalTelemetry. */ export declare class MinimalTelemetry { private _enabled; private _performanceMode; constructor(enabled?: boolean); private checkEnabled; get enabled(): boolean; /** * Track feature usage. */ trackFeatureUsage(feature: string, metadata?: Record): void; /** * Track agent execution. */ trackAgentExecution(agentName: string, duration: number, success: boolean): void; /** * Track tool call. */ trackToolCall(toolName: string, duration: number, success: boolean): void; /** * Track LLM call. */ trackLLMCall(provider: string, model: string, tokens: number, duration: number): void; /** * Track error. */ trackError(error: string, context?: Record): void; /** * Enable telemetry. */ enable(): void; /** * Disable telemetry. */ disable(): void; /** * Enable performance mode (minimal tracking). */ enablePerformanceMode(): void; /** * Disable performance mode. */ disablePerformanceMode(): void; /** * Shutdown telemetry. */ shutdown(): void; } /** * Get global minimal telemetry instance. */ export declare function getMinimalTelemetry(): MinimalTelemetry; /** * Enable performance mode for minimal telemetry overhead. * Python parity with praisonaiagents/telemetry enable_performance_mode. */ export declare function enablePerformanceMode(): void; /** * Disable performance mode to resume full telemetry tracking. * Python parity with praisonaiagents/telemetry disable_performance_mode. */ export declare function disablePerformanceMode(): void; /** * Clean up telemetry resources including thread pools and queues. * Python parity with praisonaiagents/telemetry cleanup_telemetry_resources. */ export declare function cleanupTelemetryResources(): void; export { PerformanceMonitor, createPerformanceMonitor, type MetricType, type MetricEntry, type TimerResult, type PerformanceStats, type PerformanceMonitorConfig, } from './performance'; export { TelemetryIntegration, createTelemetryIntegration, ConsoleSink, HTTPSink, createConsoleSink, createHTTPSink, type TelemetryRecord, type TelemetrySink, type TelemetrySinkType, type TelemetryIntegrationConfig, } from './integration';