import { ISubscriptionRepository } from '../repositories/ISubscriptionRepository.js'; import { IPlanRepository } from '../repositories/IPlanRepository.js'; import { IFeatureRepository } from '../repositories/IFeatureRepository.js'; import { ICustomerRepository } from '../repositories/ICustomerRepository.js'; import { IProductRepository } from '../repositories/IProductRepository.js'; export declare class FeatureCheckerService { private readonly subscriptionRepository; private readonly planRepository; private readonly featureRepository; private readonly customerRepository; private readonly productRepository; private readonly resolver; constructor(subscriptionRepository: ISubscriptionRepository, planRepository: IPlanRepository, featureRepository: IFeatureRepository, customerRepository: ICustomerRepository, productRepository: IProductRepository); /** * Get feature value for a specific subscription * @param subscriptionKey - The subscription's external key * @param featureKey - The feature's external key * @param defaultValue - Default value if feature not found * @returns The resolved feature value or default * @throws {NotFoundError} When subscription or feature not found */ getValueForSubscription(subscriptionKey: string, featureKey: string, defaultValue?: T): Promise; /** * Check if a feature is enabled for a specific subscription * @param subscriptionKey - The subscription's external key * @param featureKey - The feature's external key * @returns True if feature is enabled (value is 'true') */ isEnabledForSubscription(subscriptionKey: string, featureKey: string): Promise; /** * Get all feature values for a specific subscription */ getAllFeaturesForSubscription(subscriptionKey: string): Promise>; /** * Get feature value for a customer in a specific product * @param customerKey - The customer's external key * @param productKey - The product's external key * @param featureKey - The feature's external key * @param defaultValue - Default value if feature not found * @returns The resolved feature value or default * @throws {NotFoundError} When customer, product, or feature not found */ getValueForCustomer(customerKey: string, productKey: string, featureKey: string, defaultValue?: T): Promise; /** * Check if a feature is enabled for a customer in a specific product */ isEnabledForCustomer(customerKey: string, productKey: string, featureKey: string): Promise; /** * Get all feature values for a customer in a specific product */ getAllFeaturesForCustomer(customerKey: string, productKey: string): Promise>; /** * Check if customer has access to a specific plan */ hasPlanAccess(customerKey: string, productKey: string, planKey: string): Promise; /** * Get all active plans for a customer */ getActivePlans(customerKey: string): Promise; /** * Get feature usage summary for a customer in a specific product */ getFeatureUsageSummary(customerKey: string, productKey: string): Promise<{ activeSubscriptions: number; enabledFeatures: string[]; disabledFeatures: string[]; numericFeatures: Map; textFeatures: Map; }>; } //# sourceMappingURL=FeatureCheckerService.d.ts.map