import { RegisterOptions } from 'react-hook-form';
import { AllowedDocumentType, AuthParams, FetchStateAndError, File, FilePayload, ID } from '@zeniai/client-epic-state';
import { CompanyOfficerName } from '../../common/FileElementWithPhotoPicker';
import { AllowedFileType } from '../../common/inputFileElement/InputFileElement';
import { DisableMode } from '../common/common';
/**
 * Component & its Props
 */
export type SelectDocumentType = "driverLicense" | "passport" | "stateId" | "ssnCard" | "w9" | "w4" | "c1099" | "others" | "contract" | "purchaseOrder";
export interface Props {
    allFiles: File[];
    authParams: AuthParams;
    companyOfficerName: CompanyOfficerName;
    defaultValue: {
        allSelectDocumentType: SelectDocumentType[];
        files: {
            back?: File;
            front?: File;
        };
        defaultSelectDocumentType?: SelectDocumentType;
    };
    deleteFileStatusById: Record<ID, FetchStateAndError | undefined>;
    filesEndPoint: string;
    label: {
        width?: number;
    };
    name: string;
    officerIndex: number;
    updateFileStatusById: Record<ID, FetchStateAndError | undefined>;
    acceptableTypes?: AllowedFileType[];
    additionalInfoLabel?: string;
    errorInfoLabel?: string;
    hasError?: boolean;
    isDisabled?: DisableMode;
    isDocumentSelectDisabled?: boolean;
    isPopupOpen?: boolean;
    menuPlacement?: "auto" | "top" | "bottom";
    /**
     * File IDs currently being parsed by the AI autofill epic. Each side
     * (front/back) renders the parsing border independently based on whether
     * its own fileId is in this set.
     */
    parsingFileIds?: ReadonlyArray<ID>;
    registerOptions?: RegisterOptions;
    showWebCamPopUpCloseIcon?: boolean;
    sizeLimit?: number;
    style?: React.CSSProperties;
    onDeleteFile?: (fileId: ID) => void;
    onEditFileName?: (fileId: ID, name: string) => void;
    onFileSizeError?: (isError: boolean) => void;
    openPopup?: (isPhotoPopUpOpen: boolean) => void;
    updateFilesEntity?: (files: FilePayload[]) => void;
}
export declare function SelectDocumentField({ isDisabled, style, isPopupOpen, label, defaultValue, name, registerOptions, allFiles, additionalInfoLabel, errorInfoLabel, acceptableTypes, sizeLimit, officerIndex, filesEndPoint, authParams, deleteFileStatusById, updateFileStatusById, hasError, menuPlacement, isDocumentSelectDisabled, showWebCamPopUpCloseIcon, updateFilesEntity, onDeleteFile, onEditFileName, onFileSizeError, openPopup, companyOfficerName, parsingFileIds, }: Props): import("react/jsx-runtime").JSX.Element;
/**
 * Helpers
 */
export declare const getFile: (isFront: boolean, allFiles: File[], selectDocumentType?: SelectDocumentType) => File | undefined;
export declare const toSelectDocumentType: (documentType?: AllowedDocumentType) => SelectDocumentType | undefined;
export declare const toAllowedDocumentType: (selectDocumentType: SelectDocumentType) => AllowedDocumentType;
