/**
 * src/billing/wallet.ts
 * إدارة الميزانية الداخلية والتكاليف — Internal credit/cost management
 *
 * نموذج العمل: العميل يدفع اشتراك شهري ثابت.
 * TaseesAI يتتبع التكاليف داخلياً — العميل لا يرى شيء عن التوكنات أو التكاليف.
 */
export interface BudgetStatus {
    tenantId: string;
    planName: string;
    budget: number;
    spent: number;
    remaining: number;
    percentUsed: number;
    isOverBudget: boolean;
    throttleActive: boolean;
}
export interface TenantFinancials {
    tenantId: string;
    businessName: string;
    planName: string;
    contractPrice: number;
    apiBudget: number;
    apiSpent: number;
    profit: number;
    margin: number;
    messagesCount: number;
    budgetPercent: number;
}
export type ModelTierRecommendation = 'brain' | 'flash' | 'reasoning';
export interface BudgetConfig {
    monthlyBudgetSar: number;
    throttleAtPercent: number;
    hardLimitAtPercent: number;
    overageAllowed: boolean;
    overageRateMultiplier: number;
}
export declare class WalletManager {
    /**
     * حساب ميزانية API الشهرية الداخلية بناءً على الخطة
     */
    getInternalBudget(tenantId: string): Promise<number>;
    /**
     * إعدادات الميزانية الكاملة (مع نسب التقليص)
     */
    getBudgetConfig(tenantId: string): Promise<BudgetConfig>;
    /**
     * المصروف الحالي من API هذا الشهر (بالريال)
     * يحسب من جدول usage (الإجمالي اليومي)
     */
    getCurrentSpend(tenantId: string, month?: string): Promise<number>;
    /**
     * حالة الميزانية الكاملة
     */
    getBudgetStatus(tenantId: string): Promise<BudgetStatus>;
    /**
     * حساب الربح: سعر الاشتراك - تكلفة API
     */
    getProfit(tenantId: string, month?: string): Promise<{
        contractPrice: number;
        apiCost: number;
        profit: number;
        margin: number;
    }>;
    /**
     * هل يجب تقليل جودة النموذج لتوفير التكاليف؟
     * true إذا المصروف تجاوز 90% من الميزانية
     */
    shouldThrottle(tenantId: string): Promise<boolean>;
    /**
     * توصية النموذج المناسب بناءً على الميزانية المتبقية
     *
     * - عادي (<80%): النموذج الأمثل حسب النية (brain/reasoning)
     * - ميزانية ضيقة (80-95%): Gemini Flash أكثر
     * - ميزانية حرجة (>95%): كل شيء Gemini Flash إلا الشكاوى والتصعيد
     */
    getRecommendedTier(tenantId: string, intent: string, originalTier?: ModelTierRecommendation): Promise<{
        tier: ModelTierRecommendation;
        reason: string;
        downgraded: boolean;
    }>;
    /**
     * نظرة شاملة على جميع المستأجرين — للوحة إدارة TaseesAI
     */
    getAllTenantsFinancials(month?: string): Promise<TenantFinancials[]>;
    private getCurrentMonth;
    private getMonthEndDate;
}
export declare const walletManager: WalletManager;
//# sourceMappingURL=wallet.d.ts.map