export declare class QuotaMonitor {
    private readonly FREE_TIER_LIMITS;
    private readonly PAID_TIER_LIMITS;
    private usage;
    private readonly WARNING_THRESHOLDS;
    private isPaidTier;
    constructor(isPaidTier?: boolean);
    trackRequest(tokensUsed?: number): void;
    canMakeRequest(estimatedTokens?: number): {
        allowed: boolean;
        reason?: string;
        waitTime?: number;
    };
    getUsageStats(): {
        tier: string;
        requests: {
            today: number;
            this_minute: number;
            daily_limit: number;
            minute_limit: number;
            daily_remaining: number;
            minute_remaining: number;
        };
        tokens: {
            today: number;
            this_minute: number;
            daily_limit: number;
            minute_limit: number;
            daily_remaining: number;
            minute_remaining: number;
        };
        reset_times: {
            daily_reset_in: number;
            minute_reset_in: number;
        };
    };
    getQuotaStatus(): {
        requests_daily_percent: number;
        requests_minute_percent: number;
        tokens_daily_percent: number;
        tokens_minute_percent: number;
        overall_status: 'healthy' | 'warning' | 'critical';
    };
    private resetCountersIfNeeded;
    private checkAndWarnLimits;
    private getTimeUntilDailyReset;
    private getTimeUntilMinuteReset;
    private formatDuration;
    private loadStoredUsage;
    private saveUsage;
    private setupPeriodicReset;
    static estimateTokens(text: string, files?: number): number;
}
export declare function getQuotaMonitor(isPaidTier?: boolean): QuotaMonitor;
export declare function resetQuotaMonitor(): void;
//# sourceMappingURL=quotaMonitor.d.ts.map