import { SetupIntentResult } from '@stripe/stripe-js';
import { ClientAnalytics } from '@zeniai/client-analytics';
import { AddCardPaymentSourceType, BillingView, ID, PlaidLinkTokenType, SettingsViewUIState } from '@zeniai/client-epic-state';
import { AddressFormData } from '../../address/addressHelper';
import { SetUpAccountSectionFormData } from '../../commonSetUp/sections/setUpAccountSection/SetUpAccountSection';
import { DisableMode } from '../../formElements/common/common';
declare const payAccountSectionId = "payAccountSectionId";
declare const subscriptionBillingAddressSectionId = "subscriptionBillingAddressSectionId";
export interface Props {
    analytics: ClientAnalytics;
    billingSetupView: BillingView;
    companyId: ID;
    connectedAccountProvider: string;
    googleAPIKey: ID;
    stripeKey: ID;
    uiState: SettingsViewUIState;
    isDisabled?: DisableMode;
    handleAddCardPaymentSource: (paymentType: AddCardPaymentSourceType, paymentMethod: string, paymentId: string) => void;
    handleConfirmCardSetupIntent: (setupIntentData: SetupIntentResult) => void;
    handleCreateCardSetupIntent: (paymentsMethod: string[]) => void;
    handleResetCardPaymentErrorStatuses: () => void;
    onAddressEditHandler: (formData: AddressFormData) => void;
    onBackClick: () => void;
    onBillingAddressSave: (companyId: ID) => void;
    onClickMenuIcon: () => void;
    onEstablishConnectionClick: (publicToken: ID, linkTokenType?: PlaidLinkTokenType) => void;
    onEstablishConnectionSuccess: () => void;
    onFetchLinkTokenClick: (plaidLinkTokenType: PlaidLinkTokenType, paymentAccountId?: ID) => void;
    onUpdateAccountClick: (accountId: ID, paymentAccountId: ID) => void;
    onUpdatePaymentAccountLoginStatus: (paymentAccountId: ID, plaidLinkTokenType: PlaidLinkTokenType) => void;
    onUpdatePaymentAccountStatus: (verificationStatusCode: string, paymentAccountId: ID, plaidLinkTokenType: PlaidLinkTokenType) => void;
    resetCardPaymentViewState: () => void;
    updateCardPaymentModalState: (isCardPaymentPopupOpen: boolean) => void;
    handleFetchPaymentSources?: () => void;
}
export interface FormData {
    [payAccountSectionId]: SetUpAccountSectionFormData;
    [subscriptionBillingAddressSectionId]: AddressFormData;
}
declare const BillingSettingsPage: ({ analytics, billingSetupView, connectedAccountProvider, isDisabled, onClickMenuIcon, uiState, stripeKey, googleAPIKey, companyId, onUpdateAccountClick, onFetchLinkTokenClick, onUpdatePaymentAccountStatus, onUpdatePaymentAccountLoginStatus, onEstablishConnectionClick, onEstablishConnectionSuccess, handleCreateCardSetupIntent, handleConfirmCardSetupIntent, updateCardPaymentModalState, handleAddCardPaymentSource, resetCardPaymentViewState, handleResetCardPaymentErrorStatuses, onBillingAddressSave, onAddressEditHandler, }: Props) => import("react/jsx-runtime").JSX.Element;
export default BillingSettingsPage;
export declare const uniqueName: (sectionId: ID) => `${string}_form`;
