import { EventEmitter } from "events";
export interface TokenUsage {
    inputTokens: number;
    outputTokens: number;
    model: string;
    timestamp: Date;
    cost: number;
}
export interface CostReport {
    sessionCost: number;
    dailyCost: number;
    weeklyCost: number;
    monthlyCost: number;
    totalCost: number;
    sessionTokens: {
        input: number;
        output: number;
    };
    modelBreakdown: Record<string, {
        cost: number;
        calls: number;
    }>;
    recentUsage: TokenUsage[];
}
export interface CostConfig {
    budgetLimit?: number;
    dailyLimit?: number;
    alertThreshold?: number;
    trackHistory: boolean;
    historyDays: number;
    /** Use SQLite database instead of JSON files */
    useSQLite: boolean;
}
export interface ModelPricing {
    inputPer1k: number;
    outputPer1k: number;
}
/**
 * Cost Tracker - Track API usage and costs
 */
export declare class CostTracker extends EventEmitter {
    private config;
    private configPath;
    private historyPath;
    private sessionUsage;
    private history;
    private sessionStart;
    private dbRepository;
    constructor(config?: Partial<CostConfig>);
    private loadConfig;
    private saveConfig;
    private loadHistory;
    private saveHistory;
    /**
     * Calculate cost for token usage
     */
    calculateCost(inputTokens: number, outputTokens: number, model: string): number;
    /**
     * Record token usage
     */
    recordUsage(inputTokens: number, outputTokens: number, model: string): TokenUsage;
    /**
     * Check and emit budget alerts
     */
    private checkBudgetAlerts;
    /**
     * Get cost report
     */
    getReport(): CostReport;
    /**
     * Set budget limit
     */
    setBudgetLimit(limit: number): void;
    /**
     * Set daily limit
     */
    setDailyLimit(limit: number): void;
    /**
     * Reset session tracking
     */
    resetSession(): void;
    /**
     * Clear all history
     */
    clearHistory(): void;
    /**
     * Export history to CSV
     */
    exportToCsv(): string;
    /**
     * Format cost dashboard
     */
    formatDashboard(): string;
    private createProgressBar;
    /**
     * Dispose and cleanup resources
     */
    dispose(): void;
}
export declare function getCostTracker(config?: Partial<CostConfig>): CostTracker;
