import { AccountBase, BankAccount, BillPayConfig, BillableStatus, ClassBase, Currency, CustomerBase, EditBillDetailSelectorView, EditRecurringBillType, EntityAutoCompleteView, ID, InternationalTransferFeeBearerPaymentMethod, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, PaymentAccount, Recommendation, RecommendedAccountBase, RecommendedClassBase, TransactionWithAccountAndClassLine, ZeniDate } from '@zeniai/client-epic-state'; import { CreatableSingleSelectFieldValue } from '../../../creatableSingleSelect/CreatableSingleSelectField'; import { OptionType } from '../../../formElements/autoCompleteGroupedSingleSelectField/AutoCompleteGroupedSingleSelectField'; import { AutoCompleteSingleSelectFieldValue } from '../../../formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField'; import { CreatableAutoCompleteSingleSelectFieldValue } from '../../../formElements/creatableAutoCompleteSingleSelectTitleField/CreatableAutoCompleteSingleSelectTitleField'; import { DatePickerWithRadioOptionsSelectValue } from '../../../formElements/datePickerWithRadioOptions/DatePickerWithRadioOptions'; import { GroupedSingleSelectFieldValue } from '../../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField'; import { SingleSelectPickerFieldValue } from '../../../formElements/singleSelectPickerField/SingleSelectPickerField'; import { BillableOptionsField } from './sections/formElements/singleSelectForBills/SingleSelectField'; export declare const getCustomerOptions: (entityAutoCompleteView?: EntityAutoCompleteView) => OptionType[]; export declare const getDefaultCustomerOptions: (selectedCustomer?: CustomerBase, customerSearchEntityAutoCompleteView?: EntityAutoCompleteView) => { label: string; value: string; }[]; export declare const getCustomerDataFromAutoComplete: (currentLineData: Partial, currentItem: LineItemsSectionFormData, currentLineId: number, entityAutoCompleteView?: EntityAutoCompleteView) => CustomerBase | undefined; export declare const checkIfBillDetailsChanged: (billDetails: EditBillDetailSelectorView) => boolean; export interface LineData { lineId: ID; lineIndex: number; account?: AccountBase; accountsHierarchyList?: NestedAccountHierarchyForReport[]; amount?: number; billable?: BillableStatus; class?: ClassBase; classHierarchyList?: NestedClassHierarchyForReport[]; currencySymbol?: string; customer?: CustomerBase; customerAutoCompleteData?: AutoCompleteSingleSelectFieldValue; lineDescription?: string; recipientAmount?: number; recipientCurrencySymbol?: string; } export interface LineDataForEdit extends LineData { isCategoryFirstTimeAutofilled: boolean; isCategoryOrClassUpdated: boolean; isCategoryUpdateSelected: boolean; isClassFirstTimeAutofilled: boolean; isClassUpdateSelected: boolean; isRetainedCategorySelected: boolean; isRetainedClassSelected: boolean; recommendations: Recommendation[]; updateAllCheckbox: boolean; recommendedCategory?: RecommendedAccountBase; recommendedClass?: RecommendedClassBase; retainedCategory?: AccountBase; retainedClass?: ClassBase; } export interface WhatForSectionFormData { billDueDate?: Date; currency?: string; invoiceDate?: Date; invoiceNumber?: string; isInvoiceDateAutoUpdated?: boolean; memo?: string; paymentDate?: Date; recipientCurrency?: string; } export interface LineItemsSectionFormData { account: GroupedSingleSelectFieldValue; class: GroupedSingleSelectFieldValue; isCategoryFirstTimeAutofilled: boolean; isCategoryOrClassUpdated: boolean; isCategoryUpdateSelected: boolean; isClassFirstTimeAutofilled: boolean; isClassUpdateSelected: boolean; isRetainedCategorySelected: boolean; isRetainedClassSelected: boolean; lineId: string; lineIndex: number; recommendations: Recommendation[]; updateAllCheckbox: boolean; amount?: number; billable?: BillableOptionsField; currency?: Currency; customer?: AutoCompleteSingleSelectFieldValue; lineDescription?: string; recipientAmount?: number; recipientCurrency?: Currency; recommendedCategory?: RecommendedAccountBase; recommendedClass?: RecommendedClassBase; retainedCategory?: AccountBase; retainedClass?: ClassBase; } export type LineItemsSectionFormDataKeys = keyof LineItemsSectionFormData; export interface WhatForSectionLocalData { billDueDate?: ZeniDate; currencyCode?: string; invoiceDate?: ZeniDate; invoiceNumber?: string; isInvoiceDateAutoUpdated?: boolean; memo?: string; recipientCurrencyCode?: string; } export type WhatForSectionFormDataKeys = keyof WhatForSectionFormData; export interface RecurringPaymentDetailsFormData { frequency: CreatableSingleSelectFieldValue; requireApproval: CreatableSingleSelectFieldValue; endDateSelector?: DatePickerWithRadioOptionsSelectValue; startDate?: Date; updateRecurringBills?: EditRecurringBillType; } export interface PaymentDetailsSectionFormData { internationalTransferFeeBearerPaymentMethod?: InternationalTransferFeeBearerPaymentMethod; paymentDate?: Date; paymentTo?: CreatableSingleSelectFieldValue; paymentType?: BillPayConfig; recurringPaymentDetails?: RecurringPaymentDetailsFormData; recurringPaymentType?: CreatableSingleSelectFieldValue; withdrawFrom?: SingleSelectPickerFieldValue; withdrawFromAccountingName?: string; } export interface VendorDetailsFormData { vendor: CreatableAutoCompleteSingleSelectFieldValue; vendorName: string; } export type VendorDetailsFormDataKeys = keyof VendorDetailsFormData; export type PaymentDetailsSectionFormDataKeys = keyof PaymentDetailsSectionFormData; export interface PaymentDetailsSectionLocalData { paymentDate?: ZeniDate; paymentTo?: BankAccount; paymentType?: BillPayConfig; withdrawFrom?: PaymentAccount; withdrawFromAccountingName?: string; } export declare const whosItForSectionId = "whosItFor"; export declare const uniqueBillPayTabKey: (key: PaymentDetailsSectionFormDataKeys | WhatForSectionFormDataKeys | LineItemsSectionFormDataKeys | VendorDetailsFormDataKeys | typeof whosItForSectionId, index?: number) => "class" | "currency" | "vendor" | "recommendations" | "recommendedCategory" | "recommendedClass" | "customer" | "account" | "billable" | "whosItFor" | "internationalTransferFeeBearerPaymentMethod" | "paymentDate" | "paymentTo" | "paymentType" | "recurringPaymentDetails" | "recurringPaymentType" | "withdrawFrom" | "withdrawFromAccountingName" | "billDueDate" | "invoiceDate" | "invoiceNumber" | "isInvoiceDateAutoUpdated" | "memo" | "recipientCurrency" | "isCategoryFirstTimeAutofilled" | "isCategoryOrClassUpdated" | "isCategoryUpdateSelected" | "isClassFirstTimeAutofilled" | "isClassUpdateSelected" | "isRetainedCategorySelected" | "isRetainedClassSelected" | "lineId" | "lineIndex" | "updateAllCheckbox" | "amount" | "lineDescription" | "recipientAmount" | "retainedCategory" | "retainedClass" | "vendorName" | `${number}.class` | `${number}.currency` | `${number}.vendor` | `${number}.recommendations` | `${number}.recommendedCategory` | `${number}.recommendedClass` | `${number}.customer` | `${number}.account` | `${number}.billable` | `${number}.whosItFor` | `${number}.internationalTransferFeeBearerPaymentMethod` | `${number}.paymentDate` | `${number}.paymentTo` | `${number}.paymentType` | `${number}.recurringPaymentDetails` | `${number}.recurringPaymentType` | `${number}.withdrawFrom` | `${number}.withdrawFromAccountingName` | `${number}.billDueDate` | `${number}.invoiceDate` | `${number}.invoiceNumber` | `${number}.isInvoiceDateAutoUpdated` | `${number}.memo` | `${number}.recipientCurrency` | `${number}.isCategoryFirstTimeAutofilled` | `${number}.isCategoryOrClassUpdated` | `${number}.isCategoryUpdateSelected` | `${number}.isClassFirstTimeAutofilled` | `${number}.isClassUpdateSelected` | `${number}.isRetainedCategorySelected` | `${number}.isRetainedClassSelected` | `${number}.lineId` | `${number}.lineIndex` | `${number}.updateAllCheckbox` | `${number}.amount` | `${number}.lineDescription` | `${number}.recipientAmount` | `${number}.retainedCategory` | `${number}.retainedClass` | `${number}.vendorName`; export type BillPayTabKeys = ReturnType;