import { Dispatch, SetStateAction } from 'react';
import { BankNameByRoutingState, CreateBankAccountLocalData, FetchStateAndError, ID, PlaidConnectionDetails, PlaidLinkTokenType } from '@zeniai/client-epic-state';
import { ResponsiveSized } from '../../../context/windowSizeProvider';
import { DisableMode } from '../../formElements/common/common';
import { BankAccountSectionFormData } from '../billPay/achDetailsPage/sections/BankAccountSection';
/**
 * Dimensions
 */
export declare const D: {
    buttonWidth: ResponsiveSized;
    paddingLeft: ResponsiveSized;
    paddingRight: ResponsiveSized;
    marginbottom: ResponsiveSized;
    subTitleMarginbottom: ResponsiveSized;
    orSeperatorTopBottomMargin: ResponsiveSized;
    height: ResponsiveSized;
    iconWidthHeight: ResponsiveSized;
};
declare const bankAccountSectionId = "bankAccountSection";
export interface FormData {
    [bankAccountSectionId]: BankAccountSectionFormData;
}
type Dispatcher<T> = Dispatch<SetStateAction<T>>;
export declare const uniqueName: (formId: ID) => `${string}_form`;
export interface Props {
    bankAccountCreationState: FetchStateAndError;
    bankNameByRouting: Record<string, BankNameByRoutingState>;
    fetchBankNameByRoutingStatus: FetchStateAndError;
    plaidConnectionDetails: PlaidConnectionDetails;
    setShowBankAccountPage: Dispatcher<boolean>;
    bankAccountToCreate?: CreateBankAccountLocalData;
    hideBackIcon?: boolean;
    hideTopBar?: boolean;
    isDisabled?: DisableMode;
    style?: React.CSSProperties;
    onBackClick: () => void;
    onFetchBankName: (routingNumber: string) => void;
    onSaveHandler: () => void;
    onUserBankDetailsUpdated: (formData: FormData) => void;
    onEstablishConnectionClick?: (publicToken: ID) => void;
    onFetchLinkTokenClick?: (plaidLinkTokenType: PlaidLinkTokenType) => void;
}
/**
 * Imperative handle so parents (e.g. `EditReimbursementDetailPage`) can
 * request a back-navigation that respects the form's dirty state and
 * triggers the same discard-confirmation popup as the in-page back chevron.
 * Without this, an external back icon would silently discard unsaved
 * bank-account form input.
 */
export interface UserBankAccountPageHandle {
    requestBack: () => void;
}
declare const UserBankAccountPage: import('react').ForwardRefExoticComponent<Props & import('react').RefAttributes<UserBankAccountPageHandle>>;
export default UserBankAccountPage;
