import { EventEmitter } from 'events';
export interface BudgetConfig {
    daily?: number;
    weekly?: number;
    monthly?: number;
    total?: number;
    alertThresholds?: number[];
    notifyOnExceed?: boolean;
    resetDates?: {
        daily?: string;
        weekly?: string;
        monthly?: string;
    };
}
export interface BudgetStatus {
    daily: {
        used: number;
        limit: number;
        percentage: number;
        exceeded: boolean;
    };
    weekly: {
        used: number;
        limit: number;
        percentage: number;
        exceeded: boolean;
    };
    monthly: {
        used: number;
        limit: number;
        percentage: number;
        exceeded: boolean;
    };
    total: {
        used: number;
        limit: number;
        percentage: number;
        exceeded: boolean;
    };
}
export interface BudgetAlert {
    type: 'daily' | 'weekly' | 'monthly' | 'total';
    threshold: number;
    used: number;
    limit: number;
    message: string;
    timestamp: Date;
}
export declare class BudgetManager extends EventEmitter {
    private static instance;
    private configPath;
    private statePath;
    private config;
    private usageState;
    private alertedThresholds;
    private constructor();
    static getInstance(): BudgetManager;
    private loadConfig;
    private loadState;
    private saveConfig;
    private saveState;
    private getWeekStart;
    private checkResetDates;
    setBudget(type: 'daily' | 'weekly' | 'monthly' | 'total', amount: number): void;
    setAlertThresholds(thresholds: number[]): void;
    updateUsage(cost: number): Promise<void>;
    private checkBudgets;
    private formatAlertMessage;
    getStatus(): BudgetStatus;
    calculateCurrentPeriodUsage(projectPath: string): Promise<void>;
    reset(type?: 'daily' | 'weekly' | 'monthly' | 'total'): void;
    getConfig(): BudgetConfig;
    exportReport(): string;
    private createProgressBar;
}
//# sourceMappingURL=budget-manager.d.ts.map