import { Dispatch, SetStateAction } from 'react';
import { AccountsClickType, AccountsCurrentScreenType } from '@zeniai/client-analytics';
import { ID, PlaidConnectionDetails, PlaidLinkTokenType, TransferDetailLocalData, TransferDetailSelectorView, ZeniAccountsConfigSelectorView } from '@zeniai/client-epic-state';
import { SingleSelectPickerFieldValue } from '../../formElements/singleSelectPickerField/SingleSelectPickerField';
declare const transferSectionId = "transferDetails";
export declare const transferDetailPage = "transferDetailPage";
export interface TransferFormData {
    transferFrom: SingleSelectPickerFieldValue;
    transferTo: SingleSelectPickerFieldValue;
    amount?: number;
}
type FormDataKeys = keyof TransferFormData;
export interface FormData {
    [transferSectionId]: TransferFormData;
}
declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.amount` | `${string}.transferTo` | `${string}.transferFrom`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare const uniqueFormName: (sectionId: ID) => `${string}_form`;
export interface TransferDrawerFormProp {
    isCalculatorOpen: boolean;
    maxInsuredAmount: number;
    plaidConnectionDetails: PlaidConnectionDetails;
    setIsCalculatorOpen: Dispatch<SetStateAction<boolean>>;
    setShowAnnualYieldEarned: Dispatch<SetStateAction<boolean>>;
    setTotalBalance: Dispatch<SetStateAction<number>>;
    setTransferAmount: Dispatch<SetStateAction<number>>;
    setYieldEarned: Dispatch<SetStateAction<number>>;
    showAnnualYieldEarned: boolean;
    totalBalance: number;
    transferAmount: number;
    transferDetails: TransferDetailSelectorView;
    yieldEarned: number;
    zeniAccountsConfigDetail: ZeniAccountsConfigSelectorView;
    fireTrackTransferBetweenAccountsFormClicked: (clickType: AccountsClickType, currentScreen: AccountsCurrentScreenType) => void;
    onBackClick: () => void;
    onReviewClick: () => void;
    onSaveChangesToLocalStore: (localData: TransferDetailLocalData) => void;
    onEstablishConnectionClick?: (publicToken: ID) => void;
    onFetchLinkTokenClick?: (plaidLinkTokenType: PlaidLinkTokenType) => void;
}
declare function TransferDrawerForm({ plaidConnectionDetails, transferDetails, zeniAccountsConfigDetail, isCalculatorOpen, showAnnualYieldEarned, transferAmount, yieldEarned, totalBalance, maxInsuredAmount, setIsCalculatorOpen, setShowAnnualYieldEarned, setTransferAmount, setYieldEarned, setTotalBalance, onSaveChangesToLocalStore, onBackClick, onEstablishConnectionClick, fireTrackTransferBetweenAccountsFormClicked, onFetchLinkTokenClick, onReviewClick, }: Readonly<TransferDrawerFormProp>): import("react/jsx-runtime").JSX.Element;
export default TransferDrawerForm;
export declare const getDefaultPaymentAccount: (transferDetails: TransferDetailSelectorView) => ID | undefined;
