import { Address, Class, CreditLimitFrequency, DepositAccountWithLimit, ID, IssueChargeCardLocalData, IssueChargeCardSelectorView, Person, User, UserRole } from '@zeniai/client-epic-state';
import { ChargeCardTypeOption, IssueCardSectionFormData, uniqueName } from './helpers/IssueChargeCardUtils';
declare const issueCardSectionId = "lineInfo";
export interface FormData {
    [issueCardSectionId]: IssueCardSectionFormData[];
}
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare const uniqueFormName: (sectionId: ID) => `${string}_form`;
export interface IssueChargeCardPageProps {
    allAccountingClasses: Class[];
    allRoles: UserRole[];
    cardHolderCandidates: User[];
    isChargeCardFeatureEnabled: boolean;
    isChargeCardSetupEnabled: boolean;
    isDebitCardFeatureEnabled: boolean;
    isDebitCardSetupEnabled: boolean;
    isIssuePhysicalCardEnabled: boolean;
    isIssuePhysicalDebitCardEnabled: boolean;
    issueChargeCards: IssueChargeCardSelectorView;
    userList: Person[];
    defaultCardType?: ChargeCardTypeOption;
    onDismissClick: () => void;
    onIssueCardClick: () => void;
    onSaveChangesToLocalStore: (localData: IssueChargeCardLocalData[]) => void;
    openAddAddressDrawerHandler: (lineId: ID, chargeCardTypeOption: ChargeCardTypeOption) => void;
    resetCustomAddressByLineID: (lineId: string, chargeCardType: ChargeCardTypeOption) => void;
    clearTentativeNameForLine?: (lineId: string) => void;
}
declare const IssueChargeCardPage: ({ issueChargeCards, cardHolderCandidates, userList, allRoles, allAccountingClasses, isIssuePhysicalCardEnabled, isIssuePhysicalDebitCardEnabled, isDebitCardFeatureEnabled, isChargeCardFeatureEnabled, isDebitCardSetupEnabled, isChargeCardSetupEnabled, defaultCardType, onSaveChangesToLocalStore, onIssueCardClick, onDismissClick, resetCustomAddressByLineID, openAddAddressDrawerHandler, clearTentativeNameForLine, }: IssueChargeCardPageProps) => import("react/jsx-runtime").JSX.Element;
export declare const getInitialLineFormData: (index: number, lineId: string, cardHolderCandidates: User[], creditLimitFrequency: CreditLimitFrequency[], userList: Person[], depositAccounts: DepositAccountWithLimit[], isCreditCardFeatureEnabled: boolean, isDebitCardFeatureEnabled: boolean, isChargeCardSetupEnabled: boolean, isDebitCardSetupEnabled: boolean, companyAddress?: Address, defaultCardType?: ChargeCardTypeOption) => IssueCardSectionFormData;
export default IssueChargeCardPage;
