import { Subscription } from "../../../meta/subscription-plan/subscription.resource";
import { VoidFunc, VoidFuncNoParam } from "../../../../fd-toolbox/functions/internal-getter-setter-functions";
import { PaymentPlanFeature } from "../../../meta/core/resources/payment-plan-feature.resource";
import { Pricing } from "../../../meta/core/resources/pricing.resource";
import { SubscriptionPlanConfig } from "./subscription-plan-models";
import { RouterInstance } from "../../../meta/client/framework";
export declare function fetchPricings(excludePricingIds?: string[]): Promise<any>;
export declare function fetchFeaturesByIds(featureIds: string[]): Promise<any>;
export declare function fetchPaymentPlanFeatures(): Promise<any>;
export declare function getFeaturesByPlan(paymentPlanFeature: (PaymentPlanFeature & {
    featureName: string;
})[]): Record<string, string[]>;
export declare function cancelSubscription(resourceId: string): Promise<any>;
export declare function getAdditionalInfo(pricing: Pricing, activeSubscription?: Subscription): any;
export declare function getButtonText(pricing: Pricing, activeSubscription?: Subscription): string;
/** @internal */
export declare function getPaymentPlanButtonId(displayName: string, planName: string): string;
export declare function getPaymentPlanId(paymentPlanName: string, pricingBillingInterval: number): string;
export declare function isBasicPlan(planName: string): planName is "Basic";
export declare function updateSubscription(subscriptionId: string, pricingId: string, refreshPricing: VoidFuncNoParam): Promise<void>;
export declare function handlePlanAction(pricing: Pricing, dialogOpen: boolean, refreshPlansTrigger: number, setIsDialogOpen: VoidFunc<boolean>, setIsCanceling: VoidFunc<boolean>, setRefreshPlansTrigger: VoidFunc<number>, setSelectedPlanPrice: VoidFunc<number>, setSelectedPricingId: VoidFunc<string>, activeSubscription?: Subscription, config?: SubscriptionPlanConfig, router?: RouterInstance): Promise<void>;
export declare function isCancelAction(pricing: Pricing, activeSubscription?: Subscription): boolean;
export interface PaymentPlanFeatureWithName extends PaymentPlanFeature {
    featureName: string;
}
export declare function onRefreshPricings(isCanceling: boolean, setIsCanceling: VoidFunc<boolean>, setActiveSubscription: VoidFunc<Subscription | undefined>, setPricings: VoidFunc<Pricing[]>, setPaymentPlanFeature: VoidFunc<PaymentPlanFeatureWithName[]>, excludePricingIds?: string[]): Promise<void>;
export declare function isActivePricing(pricing: Pricing, activePricing?: Pricing, pendingPricingId?: string): boolean;
export declare function canUpdateSubscription(pricingId: string, activeSubscription?: Subscription): boolean;
export declare function getPricingText(pricing: Pricing, pricingDescription?: string): string;
export declare function getPricingDescripion(pricing: Pricing): any;
export declare function handleCheckoutSuccess(hasActiveSubscription: boolean, setIsDialogOpen: VoidFunc<boolean>, refreshPricingsData: VoidFuncNoParam, config?: SubscriptionPlanConfig): void;
export declare function updateSubscriptionHandler(dialogResult: boolean, pricing: Pricing, refreshPricingsData: () => void, activeSubscription?: Subscription): Promise<void>;
