export interface LLMUsageData {
    totalRequests: number;
    totalTokensUsed: number;
    totalCost: number;
    lastUsed: string;
    firstUsed: string;
    errorCount: number;
}
export interface UsageStats {
    [llmId: string]: LLMUsageData;
}
export declare class UsageTracker {
    private static instance;
    private usageFile;
    private stats;
    private constructor();
    static getInstance(): UsageTracker;
    /**
     * Load usage statistics from disk
     */
    private loadStats;
    /**
     * Save usage statistics to disk
     */
    private saveStats;
    /**
     * Track a successful LLM API request
     */
    trackRequest(llmId: string, tokensUsed?: number, estimatedCost?: number): Promise<void>;
    /**
     * Track a failed LLM API request
     */
    trackError(llmId: string): Promise<void>;
    /**
     * Ensure stats are loaded before accessing
     */
    private ensureLoaded;
    /**
     * Get usage statistics for a specific LLM
     */
    getUsageStats(llmId: string): Promise<LLMUsageData | null>;
    /**
     * Get all usage statistics
     */
    getAllUsageStats(): Promise<UsageStats>;
    /**
     * Get total usage across all LLMs
     */
    getTotalUsage(): Promise<{
        totalRequests: number;
        totalTokensUsed: number;
        totalCost: number;
        totalErrors: number;
        activeProviders: number;
    }>;
    /**
     * Reset all usage statistics
     */
    resetStats(): Promise<void>;
    /**
     * Get formatted usage summary for display
     */
    getFormattedSummary(): Promise<string[]>;
    /**
     * Export usage data for backup or analysis
     */
    exportUsageData(outputFile: string): Promise<void>;
}
//# sourceMappingURL=UsageTracker.d.ts.map