/**
 * Real-Time Cost Indicator
 *
 * Tracks and displays API usage costs:
 * - Per-request tracking
 * - Session totals
 * - Budget limits
 * - Cost predictions
 */
export interface TokenPricing {
    model: string;
    inputPer1M: number;
    outputPer1M: number;
    cachedInputPer1M?: number;
}
export interface CostEntry {
    timestamp: Date;
    model: string;
    inputTokens: number;
    outputTokens: number;
    cachedTokens: number;
    cost: number;
    requestType?: string;
}
export interface CostSummary {
    totalCost: number;
    inputCost: number;
    outputCost: number;
    totalInputTokens: number;
    totalOutputTokens: number;
    totalCachedTokens: number;
    requestCount: number;
    avgCostPerRequest: number;
    costByModel: Map<string, number>;
    entries: CostEntry[];
}
export interface CostBudget {
    limit: number;
    warningThreshold: number;
    action: 'warn' | 'block' | 'confirm';
}
/**
 * Default pricing for common models ($ per 1M tokens)
 */
export declare const MODEL_PRICING: TokenPricing[];
/**
 * Cost Tracker
 */
export declare class CostTracker {
    private entries;
    private budget?;
    private pricing;
    private sessionStart;
    constructor(customPricing?: TokenPricing[]);
    /**
     * Set budget limit
     */
    setBudget(budget: CostBudget): void;
    /**
     * Get current budget status
     */
    getBudgetStatus(): {
        hasLimit: boolean;
        limit: number;
        used: number;
        remaining: number;
        percentage: number;
        warningTriggered: boolean;
        blocked: boolean;
    };
    /**
     * Record a request
     */
    recordRequest(model: string, inputTokens: number, outputTokens: number, cachedTokens?: number, requestType?: string): CostEntry;
    /**
     * Calculate cost for tokens
     */
    calculateCost(model: string, inputTokens: number, outputTokens: number, cachedTokens?: number): number;
    /**
     * Get pricing for a model
     */
    getPricing(model: string): TokenPricing;
    /**
     * Get total cost
     */
    getTotalCost(): number;
    /**
     * Get cost summary
     */
    getSummary(): CostSummary;
    /**
     * Estimate cost for future request
     */
    estimateCost(model: string, estimatedInputTokens: number, estimatedOutputTokens: number): number;
    /**
     * Get session duration
     */
    getSessionDuration(): number;
    /**
     * Get cost rate (cost per hour)
     */
    getCostRate(): number;
    /**
     * Clear all entries
     */
    clear(): void;
    /**
     * Format cost display
     */
    formatCost(cost: number): string;
    /**
     * Format current status for display
     */
    formatStatus(): string;
    /**
     * Format detailed report
     */
    formatReport(): string;
    /**
     * Format compact status line
     */
    formatStatusLine(): string;
}
/**
 * Get or create cost tracker
 */
export declare function getCostTracker(): CostTracker;
/**
 * Reset cost tracker
 */
export declare function resetCostTracker(): void;
export default CostTracker;
