import { Pricing } from '../../types';
import { PricingOperation } from '../models/minizinc/minizinc';
import { CspSolution } from '../types';
export interface PricingAnalytics {
    numberOfFeatures: number;
    numberOfUsageLimits: number;
    numberOfPlans: number;
    numberOfAddOns: number;
    configurationSpaceSize: number;
    minSubscriptionPrice: number;
    maxSubscriptionPrice: number;
}
export interface AnalyticsOptions {
    printDzn: boolean;
}
export default class PricingService {
    private readonly pricing;
    constructor(pricing: Pricing);
    runPricingOperation(pricingOperation: PricingOperation): Promise<import("minizinc").SolveResult & {
        allSolutions: CspSolution[] | undefined;
    }>;
    getConfigurationSpace(): Promise<{
        selectedPlan: string;
        selectedAddons: string[];
        subscriptionFeatures: string[];
        subscriptionUsageLimits: string[];
        subscriptionCost: number;
    }[]>;
    getAnalytics(analyticsOptions?: AnalyticsOptions): Promise<{
        numberOfFeatures: number;
        numberOfInformationFeatures: number;
        numberOfIntegrationFeatures: number;
        numberOfIntegrationApiFeatures: number;
        numberOfIntegrationExtensionFeatures: number;
        numberOfIntegrationIdentityProviderFeatures: number;
        numberOfIntegrationWebSaaSFeatures: number;
        numberOfIntegrationMarketplaceFeatures: number;
        numberOfIntegrationExternalDeviceFeatures: number;
        numberOfDomainFeatures: number;
        numberOfAutomationFeatures: number;
        numberOfBotAutomationFeatures: number;
        numberOfFilteringAutomationFeatures: number;
        numberOfTrackingAutomationFeatures: number;
        numberOfTaskAutomationFeatures: number;
        numberOfManagementFeatures: number;
        numberOfGuaranteeFeatures: number;
        numberOfSupportFeatures: number;
        numberOfPaymentFeatures: number;
        numberOfUsageLimits: number;
        numberOfRenewableUsageLimits: number;
        numberOfNonRenewableUsageLimits: number;
        numberOfPlans: number;
        numberOfFreePlans: number;
        numberOfPaidPlans: number;
        numberOfAddOns: number;
        numberOfReplacementAddons: number;
        numberOfExtensionAddons: number;
        configurationSpaceSize: number;
        minSubscriptionPrice: number;
        maxSubscriptionPrice: number;
    }>;
    _getConfigurationSpace(dznPricing: string): Promise<import("minizinc").SolveResult & {
        allSolutions: CspSolution[] | undefined;
    }>;
    _getMinSubscriptionPrice(dznPricing: string): Promise<import("minizinc").SolveResult & {
        allSolutions: CspSolution[] | undefined;
    }>;
    _getMaxSubscriptionPrice(dznPricing: string): Promise<import("minizinc").SolveResult & {
        allSolutions: CspSolution[] | undefined;
    }>;
    _computeConfigurationPrice(minizincSolution: Record<string, any>): number;
}
