import { ClientAnalytics, SpendManagementProductType } from '@zeniai/client-analytics';
import { AddressType, AddressUpdatableInfo, AllowedDocumentType, AllowedValueWithCode, AuthParams, BusinessVerificationDetails, CompanyOfficerType, Country, FetchState, FilePayload, ID, KybProvidedDocumentType, TreasuryTransferMoneySelectorView } from '@zeniai/client-epic-state';
import { DisableMode } from '../formElements/common/common';
import { CompanyDetailsSectionFormData } from './sections/companyDetailsSection/CompanyDetailsSection';
import { CompanyOfficerDetailsSectionFormData } from './sections/companyOfficerDetailsSection/CompanyOfficerDetailsSection';
declare const companyDetailsSectionId = "companyDetails";
declare const companyOfficerDetailsSectionId = "companyOfficerDetails";
export interface Props {
    allIndustries: AllowedValueWithCode[];
    allNationalityCountries: Country[];
    authParams: AuthParams;
    businessVerificationDetails: BusinessVerificationDetails;
    companyTitles: AllowedValueWithCode[];
    filesEndPoint: string;
    isRefreshingViewInBackground: boolean;
    maxInsuredAmount: number;
    productType: SpendManagementProductType;
    verficationDetailsFetchState: FetchState;
    analytics?: ClientAnalytics;
    isDisabled?: DisableMode;
    isOverlay?: boolean;
    isSettings?: boolean;
    isStepInProgress?: boolean;
    isTreasuryTransferInitiated?: boolean;
    transferDetails?: TreasuryTransferMoneySelectorView;
    onAddressClick: (addressType: AddressType) => void;
    onBackClick: () => void;
    onGetOtp: (phoneNumber: string) => void;
    onRegisteredAddressClick: (addressType: AddressType) => void;
    onResendOtp: (otpChallenge: string) => void;
    onVerifyOtp: (code: string, otpChallenge: string) => void;
    onClickMenuIcon?: () => void;
    onCompanyDetailsChanged?: (formData: CompanyDetailsSectionFormData) => void;
    /**
     * Fired by the KYB section when a Certificate of Incorporation / EIN doc
     * upload completes. Screens dispatch parseUploadedKybDocument here.
     */
    onCompanyDocumentUploadedForAutofill?: (params: {
        documentType: KybProvidedDocumentType;
        fileId: ID;
    }) => void;
    onCompanyOfficerUpdated?: (formData: CompanyOfficerDetailsSectionFormData[]) => void;
    onDeleteFile?: (fileId: ID) => void;
    onDeleteFileList?: (fileIds: ID[]) => void;
    onEditFileName?: (fileId: ID, name: string) => void;
    onExecuteTreasuryTransfer?: () => void;
    /**
     * Fired by the KYC section when a passport / driving license / SSN card
     * upload completes for an officer. Screens dispatch parseUploadedKycDocument
     * here.
     */
    onIdentityDocumentUploadedForAutofill?: (params: {
        documentType: AllowedDocumentType;
        fileId: ID;
        officerType: CompanyOfficerType;
    }) => void;
    onOverlayClose?: () => void;
    onSaveDetailsClick?: (officerType: CompanyOfficerType) => void;
    onSendForVerificationClick?: (officerType: CompanyOfficerType) => void;
    saveNewAddressInLocalStore?: (addressType: AddressType, addressToCreate: AddressUpdatableInfo) => void;
    updateFilesEntity?: (files: FilePayload[]) => void;
}
declare const BusinessVerificationPage: ({ businessVerificationDetails, allNationalityCountries, verficationDetailsFetchState, isRefreshingViewInBackground, filesEndPoint, authParams, productType, allIndustries, companyTitles, maxInsuredAmount, isDisabled, isSettings, isOverlay, analytics, isStepInProgress, isTreasuryTransferInitiated, transferDetails, onOverlayClose, onAddressClick, onRegisteredAddressClick, onBackClick, onGetOtp, onVerifyOtp, onResendOtp, onSendForVerificationClick, onEditFileName, onCompanyDetailsChanged, onCompanyDocumentUploadedForAutofill, onIdentityDocumentUploadedForAutofill, updateFilesEntity, onDeleteFile, onDeleteFileList, onCompanyOfficerUpdated, saveNewAddressInLocalStore, onSaveDetailsClick, onClickMenuIcon, onExecuteTreasuryTransfer, }: Props) => import("react/jsx-runtime").JSX.Element;
/**
 * Form Data Type
 */
export interface FormData {
    [companyDetailsSectionId]: CompanyDetailsSectionFormData;
    [companyOfficerDetailsSectionId]: CompanyOfficerDetailsSectionFormData[];
}
export declare const uniqueName: (sectionId: ID) => `${string}_form`;
export default BusinessVerificationPage;
