import { Dispatch, SetStateAction } from 'react';
import { ClientAnalytics } from '@zeniai/client-analytics';
import { AuthParams, BankAccount, CompanyMileageConfigInfo, CountryWithCurrency, Currency, DuplicateLine, EditRemiDetailSelectorView, FetchState, FetchStateAndError, ID, Merchant, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, ReceiptsProcessingPayload, UncategorizedAccounts } from '@zeniai/client-epic-state';
import { CustomerSearchAutoComplete, LineInfoFormData } from './sections/ReimbursementSection';
type Dispatcher<T> = Dispatch<SetStateAction<T>>;
export interface Props {
    authParams: AuthParams;
    bankAccounts: BankAccount[];
    currencyConversionStatus: Record<ID, FetchStateAndError>;
    defaultCurrency: Currency;
    duplicateLineByLineId: Record<string, DuplicateLine>;
    fileRequiredLineIds: ID[];
    hasDuplicateLine: boolean;
    isAccountingClassesEnabled: boolean;
    isAutoFieldsExist: boolean;
    isReimbursementCommentingEnabled: boolean;
    isSignedInUserReimbursementCreator: boolean;
    isUserAdmin: boolean;
    remiDetails: EditRemiDetailSelectorView;
    setShowBankAccountPage: Dispatcher<boolean>;
    setShowSkipAutoFill: Dispatcher<boolean>;
    showSkipAutoFill: boolean;
    showTotalAmountLoader: boolean;
    totalAmount: number;
    uncategorizedAccounts: UncategorizedAccounts;
    uploadInvoiceEndPoint: string;
    analytics?: ClientAnalytics;
    companyMileageConfigInfo?: CompanyMileageConfigInfo;
    customerSearchAutoComplete?: CustomerSearchAutoComplete;
    reimbursementId?: ID;
    scrollContainerRef?: React.RefObject<HTMLDivElement>;
    onDuplicateLineClick: (reimbursementId: ID, lineId: ID) => void;
    onReceiptsUpload: (response: ReceiptsProcessingPayload | undefined, lineId: number, shouldOverwrite: boolean) => void;
    removeDuplicateReimbursementForLine: (lineId: string) => void;
    setCurrentLineIdForUpload: (lineId: number) => void;
    setUploadedReceiptPayload: (payload: ReceiptsProcessingPayload) => void;
    clearTentativeNameForLine?: (lineId: string) => void;
    onDeleteBankAccount?: (bankAccountId: ID) => void;
    onReplaceClick?: () => void;
    removeFileFromLine?: (lineId: number) => void;
    updateInvoiceUploadFetchState?: (fetchState: FetchState) => void;
}
declare const AllReimbursementLineItems: ({ remiDetails, isUserAdmin, authParams, uploadInvoiceEndPoint, isAccountingClassesEnabled, showSkipAutoFill, isReimbursementCommentingEnabled, isAutoFieldsExist, totalAmount, defaultCurrency, hasDuplicateLine, bankAccounts: userFinancialBankAccounts, fileRequiredLineIds, companyMileageConfigInfo, analytics, reimbursementId, currencyConversionStatus, setShowSkipAutoFill, setShowBankAccountPage, removeDuplicateReimbursementForLine, onReceiptsUpload, setCurrentLineIdForUpload, onDuplicateLineClick, setUploadedReceiptPayload, removeFileFromLine, onReplaceClick, updateInvoiceUploadFetchState, clearTentativeNameForLine, customerSearchAutoComplete, onDeleteBankAccount, uncategorizedAccounts, isSignedInUserReimbursementCreator, duplicateLineByLineId, showTotalAmountLoader, scrollContainerRef, }: Props) => import("react/jsx-runtime").JSX.Element;
export declare const getInitialLineFormData: (index: number, lineId: string, accountsHierarchyList: NestedAccountHierarchyForReport[], classHierarchyList: NestedClassHierarchyForReport[], merchantList: Merchant[], currency: Currency, allCurrencies: CountryWithCurrency[], loggedInUserDepartmentId?: ID) => LineInfoFormData;
export declare const initialOutOfPocketForm: (accountsHierarchyList: NestedAccountHierarchyForReport[], classHierarchyList: NestedClassHierarchyForReport[], merchantList: Merchant[], currency: Currency, allCurrencies: CountryWithCurrency[], loggedInUserDepartmentId?: ID) => {
    transactionDate: undefined;
    class: {
        allOptions: import('../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField').GroupedOption[];
        selectedOption: string | undefined;
    };
    account: {
        allOptions: import('../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField').GroupedOption[];
        selectedOption: undefined;
    };
    amount: {
        amount: number;
        currencyCode: string;
        currencySymbol: string;
        currency: {
            allOptions: {
                label: string;
                value: string;
                countryCode: "AI" | "BD" | "US" | "NA" | "AD" | "AE" | "AF" | "AG" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "XK" | "YE" | "YT" | "ZA" | "ZM" | "ZW" | "AN" | "EU";
            }[];
            selectedOption: string;
        };
    };
    memo: undefined;
    merchant: {
        allOptions: ID[];
        selectedOption: undefined;
    };
    recommendations: never[];
    isCategoryUpdateSelected: boolean;
    isCategoryFirstTimeAutofilled: boolean;
    isRetainedCategorySelected: boolean;
};
export declare const initialMileageForm: (classHierarchyList: NestedClassHierarchyForReport[], currency: Currency, loggedInUserDepartmentId?: ID) => {
    transactionDate: undefined;
    class: {
        allOptions: import('../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField').GroupedOption[];
        selectedOption: string | undefined;
    };
    distanceInMiles: undefined;
    amount: {
        amount: number;
        currencyCode: string;
        currencySymbol: string;
    };
    memo: undefined;
};
export default AllReimbursementLineItems;
