import { Amount, ID, SubscriptionAddOn, SubscriptionCoupon, SubscriptionPlan, SubscriptionUpdateData } from '@zeniai/client-epic-state';
import { FormSectionProps } from '../../../../formElements/common/formSection';
import { GroupedOption, GroupedSingleSelectFieldValue } from '../../../../formElements/groupedSingleSelectField/GroupedSingleSelectField';
import { SingleSelectPickerFieldValue } from '../../../../formElements/singleSelectPickerField/SingleSelectPickerField';
/**
 * Component & its Props
 */
export interface UpdatePlanSectionProps extends FormSectionProps {
    subscriptionMetaDetails: {
        addOns: SubscriptionAddOn[];
        coupons: SubscriptionCoupon[];
        plans: SubscriptionPlan[];
    };
    recommendedSubscriptionPlanId?: ID;
    style?: React.CSSProperties;
    subscriptionUpdateData?: SubscriptionUpdateData;
}
export declare function UpdatePlanSection({ sectionId, isDisabled, subscriptionUpdateData, subscriptionMetaDetails, recommendedSubscriptionPlanId, style, }: UpdatePlanSectionProps): import("react/jsx-runtime").JSX.Element;
/**
 * Form Data Type
 */
export interface UpdatePlanSectionFormData {
    coupon: SingleSelectPickerFieldValue;
    recurringAddOns: SingleSelectPickerFieldValue[];
    subscriptionPlan: GroupedSingleSelectFieldValue;
}
type FormDataKeys = keyof UpdatePlanSectionFormData;
declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.coupon` | `${string}.recurringAddOns` | `${string}.subscriptionPlan`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
/**
 * Helpers
 */
export declare const getGroupedPlans: (allPlans: SubscriptionPlan[], recommendedSubscriptionPlanId?: ID) => GroupedOption[];
export declare const toAdditionalInfoLabel: (price?: Amount, period?: {
    count: number;
    unit: string;
}) => string | undefined;
export {};
