export interface EnhancedQuotaValidationRequest { licenseKey: string; requestedResources: number; /** * Per-resource credit multiplier of the AI model this scan will use (Nova * 0.5×, Mistral 1×, Haiku 4×, Sonnet 16× — sourced from the shared contract * via the CLI's model registry). The backend meters credits weighted by this, * so the pre-check must too, or a high-multiplier scan (e.g. Sonnet) passes * the up-front check on raw resource count and then exhausts mid-scan. * * Fail-open: when omitted or invalid this defaults to 1× — today's exact * count-based behaviour. The pre-check is advisory; the authoritative meter * is the server-side quota gate, so a wrong estimate only mis-advises. */ quotaMultiplier?: number; allowOveruse?: boolean; usageData?: { totalTokens: number; totalResourcesAnalyzed: number; totalCost: number; usageCount: number; successfulUsageCount: number; failedUsageCount: number; averageResourcesPerAnalysis?: number; cacheHitRate?: number; averageProcessingTime?: number; usageByFeature: Record; usageByType: Record; firstUsageAt?: number; lastUsageAt?: number; }; licenseInfo?: any; } export interface EnhancedQuotaValidationResult { canProceed: boolean; canRunStaticAnalysis: boolean; canRunAIAnalysis: boolean; quota: { currentResourcesAnalyzed: number; maxResources: number; remainingResources: number; isTrial: boolean; trialExpired: boolean; wouldExceed: boolean; warningThreshold: number; hardStopThreshold: number; currentTokens: number; maxTokens: number; remainingTokens: number; }; reason?: string; upgradePath?: string; usageData?: { totalTokens: number; totalResourcesAnalyzed: number; totalCost: number; usageCount: number; successfulUsageCount: number; failedUsageCount: number; averageResourcesPerAnalysis?: number; cacheHitRate?: number; averageProcessingTime?: number; usageByFeature: Record; usageByType: Record; firstUsageAt?: number; lastUsageAt?: number; }; } export declare const validateEnhancedLicenseQuota: (request: EnhancedQuotaValidationRequest) => Promise;