/**
 * SpendAggregator — daily rollups and provider breakdown from spend records
 *
 * Reads SpendRecord JSONL files and computes:
 * - Daily cost rollups with per-provider breakdown
 * - Overall provider cost summary
 * - Budget status (current spend vs configured limits)
 *
 * Uses mtime-based cache invalidation (same pattern as CostAggregator).
 */
export interface DailyRollup {
    date: string;
    total_cost: number;
    total_tokens: number;
    sessions: number;
    providers: Record<string, ProviderDaySummary>;
}
interface ProviderDaySummary {
    cost: number;
    tokens: number;
    sessions: number;
}
export interface ProviderBreakdown {
    total_cost: number;
    total_tokens: number;
    sessions: number;
    models: Record<string, {
        cost: number;
        tokens: number;
        sessions: number;
    }>;
}
export interface BillingBudgetConfig {
    monthly?: number;
    perIncrement?: number;
    alertThresholds?: number[];
}
export interface BudgetStatus {
    currentSpend: number;
    monthlyLimit: number;
    percentUsed: number;
}
export declare class SpendAggregator {
    private readonly reader;
    private readonly dir;
    private cache;
    constructor(dir: string);
    /**
     * Get daily cost rollups, optionally filtered by date range
     */
    getDailyRollups(from?: Date, to?: Date): DailyRollup[];
    /**
     * Get cost breakdown by provider
     */
    getProviderBreakdown(): Record<string, ProviderBreakdown>;
    /**
     * Get budget status for current month
     */
    getBudgetStatus(config: BillingBudgetConfig | undefined | null): BudgetStatus | null;
    /**
     * Force cache invalidation
     */
    invalidateCache(): void;
    private getRecords;
    private computeMtimeHash;
}
export {};
//# sourceMappingURL=spend-aggregator.d.ts.map