import { AccountBase, ID, PlaidAccountKeyType, PlaidLinkTokenType, ProductWisePrimaryAccount, SpendManagementEntityType, SpendManagementEntityTypeWithOtherConnection } from '@zeniai/client-epic-state';
import { SingleSelectPickerFieldValue } from '../../formElements/singleSelectPickerField/SingleSelectPickerField';
declare const bankAccountSection = "bankAccountSection";
declare const primaryAccountSection = "primaryAccountSection";
interface Props {
    allBankAccounts: AccountBase[];
    connectedAccountProvider: string;
    setupView: ProductWisePrimaryAccount;
    onEstablishConnectionClick: (publicToken: ID, plaidAccountKeyType: PlaidAccountKeyType, productType: SpendManagementEntityType) => void;
    onEstablishConnectionSuccess: (plaidAccountKeyType: PlaidAccountKeyType, productType: SpendManagementEntityType) => void;
    onFetchLinkTokenClick: (plaidLinkTokenType: PlaidLinkTokenType, plaidAccountKeyType: PlaidAccountKeyType, paymentAccountId?: ID) => void;
    onUpdatePaymentAccountLoginStatus: (paymentAccountId: ID, plaidLinkTokenType: PlaidLinkTokenType, plaidAccountKeyType: PlaidAccountKeyType, productType: SpendManagementEntityType) => void;
    onUpdatePaymentAccountStatus: (verificationStatusCode: string, paymentAccountId: ID, plaidLinkTokenType: PlaidLinkTokenType, plaidAccountKeyType: PlaidAccountKeyType, productType: SpendManagementEntityType) => void;
}
declare const BankConnectionsProductwise: ({ allBankAccounts, setupView, connectedAccountProvider, onFetchLinkTokenClick, onUpdatePaymentAccountStatus, onEstablishConnectionClick, onEstablishConnectionSuccess, }: Props) => import("react/jsx-runtime").JSX.Element;
/**
 * Form Data Type and helpers
 */
export interface BankConnectionProductWiseFormData {
    [bankAccountSection]: SingleSelectPickerFieldValue;
    [primaryAccountSection]: SingleSelectPickerFieldValue;
}
export type ProductWiseFormDataKeys = keyof BankConnectionProductWiseFormData;
declare const uniqueName: (sectionId: ID, key: ProductWiseFormDataKeys) => `${string}.bankAccountSection` | `${string}.primaryAccountSection`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare const toPlaidConnectionKeyType: (productType: SpendManagementEntityTypeWithOtherConnection) => PlaidAccountKeyType;
export default BankConnectionsProductwise;
