export type QuotaUsage = {
    totalTokens: number;
    totalImages: number;
    dailyTokens: number;
    dailyImages: number;
    /** Total cumulative cost in USD (all time) */
    totalCost: number;
    /** Daily cost in USD (today only) */
    dailyCost: number;
    /** Optional per-day history for charting, keyed by UTC date (yyyy-MM-dd). */
    dailyHistory?: Array<{
        date: string;
        tokens: number;
        images: number;
        tokenCost: number;
        imageCost: number;
    }>;
};
export type QuotaLimits = {
    totalTokens: number;
    dailyTokens: number;
    monthlyTokens: number;
    totalImages: number;
    dailyImages: number;
    monthlyImages: number;
};
export type QuotaInfo = {
    usage: QuotaUsage;
    limits: QuotaLimits;
};
export declare function useQuota(params: {
    showError: (opts: {
        summary?: string;
        details?: string;
    }) => void;
}): {
    readonly quotaInfo: QuotaInfo | null;
    readonly setQuotaInfo: import("react").Dispatch<import("react").SetStateAction<QuotaInfo | null>>;
    readonly isQuotaExceeded: () => boolean;
    readonly getQuotaWarningMessage: () => string | null;
};
