import { ChargeCardType, CreditCardCodeType, DebitCardCodeType, ID, ShippingAddressType } from '@zeniai/client-epic-state';
import { SingleSelectPickerFieldValue } from '../../../formElements/singleSelectPickerField/SingleSelectPickerField';
import { UserSingleSelectWithSubtitlesFieldValue } from '../../../formElements/userSingleSelectWithSubtitlesField/UserSingleSelectWithSubtitlesField';
import { UserMultiSelectFieldValue } from '../../billPay/billPaySetUp/components/formElements/UserMultiSelectField';
export declare const getAdditionalLabel: (optionId: ID) => string;
declare const amount = "amount";
declare const cardName = "cardName";
declare const users = "users";
declare const user = "user";
declare const frequency = "frequency";
declare const cardType = "cardType";
declare const chargeCardType = "chargeCardType";
declare const creditCard = "creditCard";
declare const debitCard = "debitCard";
declare const connectedAccount = "connectedAccount";
declare const addressType = "addressType";
declare const addressId = "addressId";
declare const physicalCard = "physicalCard";
declare const virtualCard = "virtualCard";
export interface PhysicalCreditCardSectionFormData {
    [addressId]: ID | undefined;
    [addressType]: ShippingAddressType | undefined;
    [amount]: number | undefined;
    [cardName]: string;
    [frequency]: SingleSelectPickerFieldValue;
    [user]: UserSingleSelectWithSubtitlesFieldValue;
}
export interface VirtualCreditCardSectionFormData {
    [amount]: number | undefined;
    [cardName]: string;
    [frequency]: SingleSelectPickerFieldValue;
    [users]: UserMultiSelectFieldValue;
}
export interface PhysicalDebitCardSectionFormData {
    [addressId]: ID | undefined;
    [addressType]: ShippingAddressType | undefined;
    [amount]: number | undefined;
    [cardName]: string;
    [connectedAccount]: SingleSelectPickerFieldValue;
    [frequency]: SingleSelectPickerFieldValue;
    [user]: UserSingleSelectWithSubtitlesFieldValue;
}
export interface VirtualDebitCardSectionFormData {
    [amount]: number | undefined;
    [cardName]: string;
    [connectedAccount]: SingleSelectPickerFieldValue;
    [frequency]: SingleSelectPickerFieldValue;
    [users]: UserMultiSelectFieldValue;
}
export interface IssueCardSectionFormData {
    [chargeCardType]: ChargeCardType;
    [creditCard]: {
        [cardType]: CreditCardCodeType;
        [physicalCard]: PhysicalCreditCardSectionFormData;
        [virtualCard]: VirtualCreditCardSectionFormData;
    };
    [debitCard]: {
        [cardType]: DebitCardCodeType;
        [physicalCard]: PhysicalDebitCardSectionFormData;
        [virtualCard]: VirtualDebitCardSectionFormData;
    };
    lineId: ID;
    lineIndex: number;
}
export declare const toChargeCardTypeOption: (v: string) => "creditCard" | "debitCard";
export type ChargeCardTypeOption = ReturnType<typeof toChargeCardTypeOption>;
type IssueChargeCardNestedKeys<T, Depth extends number> = [Depth] extends [
    never
] ? never : {
    [K in keyof T]: T[K] extends object ? `${Extract<K, string>}` | `${Extract<K, string>}.${IssueChargeCardNestedKeys<T[K], Depth>}` : Extract<K, string>;
}[keyof T];
export type FormDataKeys = IssueChargeCardNestedKeys<IssueCardSectionFormData, 1>;
export declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.lineId` | `${string}.lineIndex` | `${string}.chargeCardType` | `${string}.creditCard` | `${string}.debitCard` | `${string}.creditCard.physicalCard` | `${string}.creditCard.virtualCard` | `${string}.creditCard.cardType` | `${string}.creditCard.physicalCard.addressId` | `${string}.creditCard.physicalCard.user` | `${string}.creditCard.physicalCard.cardName` | `${string}.creditCard.physicalCard.amount` | `${string}.creditCard.physicalCard.frequency` | `${string}.creditCard.physicalCard.addressType` | `${string}.creditCard.physicalCard.user.${string}` | `${string}.creditCard.physicalCard.frequency.${string}` | `${string}.creditCard.virtualCard.cardName` | `${string}.creditCard.virtualCard.amount` | `${string}.creditCard.virtualCard.users` | `${string}.creditCard.virtualCard.frequency` | `${string}.creditCard.virtualCard.frequency.${string}` | `${string}.creditCard.virtualCard.users.${string}` | `${string}.debitCard.physicalCard` | `${string}.debitCard.virtualCard` | `${string}.debitCard.cardType` | `${string}.debitCard.physicalCard.addressId` | `${string}.debitCard.physicalCard.user` | `${string}.debitCard.physicalCard.cardName` | `${string}.debitCard.physicalCard.amount` | `${string}.debitCard.physicalCard.frequency` | `${string}.debitCard.physicalCard.addressType` | `${string}.debitCard.physicalCard.user.${string}` | `${string}.debitCard.physicalCard.frequency.${string}` | `${string}.debitCard.virtualCard.cardName` | `${string}.debitCard.virtualCard.amount` | `${string}.debitCard.virtualCard.users` | `${string}.debitCard.virtualCard.frequency` | `${string}.debitCard.virtualCard.frequency.${string}` | `${string}.debitCard.virtualCard.users.${string}` | `${string}.debitCard.physicalCard.connectedAccount` | `${string}.debitCard.physicalCard.connectedAccount.${string}` | `${string}.debitCard.virtualCard.connectedAccount` | `${string}.debitCard.virtualCard.connectedAccount.${string}`;
export {};
