import { ModelProviderID, ModelSpecificQuota, ProviderQuota } from "../types/types.cjs";
export type { ModelSpecificQuota, ProviderQuota };
export type QuotaUpdateCallback = (quotaSummary: Record<string, any>) => void;
export declare class QuotaTracker {
    private quotas;
    private updateCallback?;
    private openAIFreeQuota;
    constructor(updateCallback?: QuotaUpdateCallback);
    setUpdateCallback(callback: QuotaUpdateCallback | undefined): void;
    private initializeProviderQuotas;
    getProviderQuota(provider: ModelProviderID): ProviderQuota;
    getModelQuota(provider: ModelProviderID, model: string): ModelSpecificQuota | null;
    trackUsage(provider: ModelProviderID, model: string, inputTokens: number, outputTokens: number): boolean;
    hasQuota(provider: ModelProviderID, model: string): boolean;
    hasOpenAIFreeQuota(model: string): boolean;
    trackCreditUsage(provider: ModelProviderID, creditAmount: number): void;
    getCreditBalance(provider: ModelProviderID): number;
    getSummary(): Record<string, any>;
    sendQuotaUpdate(): void;
}
export declare const quotaTracker: QuotaTracker;
//# sourceMappingURL=quota_tracker.d.ts.map