import { CardProductInformation, CashbackInformation, CreditAccountInformation, DebitAccountInformation, PaymentSourceInformation } from '@zeniai/client-analytics';
import { ChargeCardRepaymentDetailLocalData, ChargeCardRepaymentDetailSelectorView, ID, PaymentAccount, PlaidConnectionDetails, PlaidLinkTokenType } from '@zeniai/client-epic-state';
import { SingleSelectPickerFieldValue } from '../../../formElements/singleSelectPickerField/SingleSelectPickerField';
declare const creditCardPaymentSectionId = "paymentDetails";
export declare const creditCardPaymentPage = "creditCardPaymentPage";
export interface CreditCardPaymentFormData {
    enableAutoPay: boolean;
    withdrawFrom: SingleSelectPickerFieldValue;
    amount?: number;
}
type FormDataKeys = keyof CreditCardPaymentFormData;
export interface FormData {
    [creditCardPaymentSectionId]: CreditCardPaymentFormData;
}
declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.amount` | `${string}.withdrawFrom` | `${string}.enableAutoPay`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare const uniqueFormName: (sectionId: ID) => `${string}_form`;
export interface CreditCardPaymentDrawerFormProp {
    autoPayThreshold: number;
    controllerEmails: string[];
    isAccountsEnabled: boolean;
    isCashbackInfoFetchStateCompleted: boolean;
    isCreditCardInfoFetchStateCompleted: boolean;
    isDebitCardInfoFetchStateCompleted: boolean;
    maxInsuredAmount: number;
    paymentDetails: ChargeCardRepaymentDetailSelectorView;
    paymentSourceInformation: PaymentSourceInformation;
    plaidConnectionDetails: PlaidConnectionDetails;
    productInformation: CardProductInformation;
    cashbackInformation?: CashbackInformation;
    creditAccountInformation?: CreditAccountInformation;
    debitAccountInformation?: DebitAccountInformation;
    lowBalanceAdditionalInfo?: string;
    paymentAccount?: PaymentAccount;
    onEstablishConnectionSuccess: () => void;
    onSaveChangesToLocalStore: (localData: ChargeCardRepaymentDetailLocalData) => void;
    onUpdatePaymentAccountStatus: (verificationStatusCode: string, paymentAccountId: ID, plaidLinkTokenType: PlaidLinkTokenType) => void;
    setShowReviewLoading: (showReviewLoading: boolean) => void;
    onEstablishConnectionClick?: (publicToken: ID, linkTokenType?: PlaidLinkTokenType) => void;
    onFetchLinkTokenClick?: (plaidLinkTokenType: PlaidLinkTokenType, id?: ID) => void;
    onMoveMoneyClick?: () => void;
    onSignUpAccountClick?: () => void;
}
declare function CreditCardPaymentDrawerForm({ autoPayThreshold, plaidConnectionDetails, maxInsuredAmount, paymentDetails, lowBalanceAdditionalInfo, paymentAccount, isAccountsEnabled, onSaveChangesToLocalStore, onUpdatePaymentAccountStatus, onEstablishConnectionClick, onEstablishConnectionSuccess, onFetchLinkTokenClick, setShowReviewLoading, onSignUpAccountClick, onMoveMoneyClick, isCashbackInfoFetchStateCompleted, isCreditCardInfoFetchStateCompleted, isDebitCardInfoFetchStateCompleted, controllerEmails, productInformation, cashbackInformation, paymentSourceInformation, creditAccountInformation, debitAccountInformation, }: Readonly<CreditCardPaymentDrawerFormProp>): import("react/jsx-runtime").JSX.Element;
export default CreditCardPaymentDrawerForm;
