import { AccountBase, BillStageCodeType, ClassBase, ID, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, Recommendation, UncategorizedAccounts } from '@zeniai/client-epic-state';
import { AutoCompleteData } from '../../../../common/autoComplete/autoCompleteProps';
import { OptionType } from '../../../../formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField';
import { FormSectionProps } from '../../../../formElements/common/formSection';
import { LineDataForEdit, LineItemsSectionFormData } from '../EditableBillDetailPageHelpers';
import { BillableOptionsType } from './formElements/singleSelectForBills/SingleSelectField';
export type FormDataKeys = keyof LineItemsSectionFormData;
export declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.amount` | `${string}.recommendedCategory` | `${string}.recommendedClass` | `${string}.class` | `${string}.currency` | `${string}.recommendations` | `${string}.customer` | `${string}.account` | `${string}.billable` | `${string}.recipientCurrency` | `${string}.isCategoryFirstTimeAutofilled` | `${string}.isCategoryOrClassUpdated` | `${string}.isCategoryUpdateSelected` | `${string}.isClassFirstTimeAutofilled` | `${string}.isClassUpdateSelected` | `${string}.isRetainedCategorySelected` | `${string}.isRetainedClassSelected` | `${string}.lineId` | `${string}.lineIndex` | `${string}.updateAllCheckbox` | `${string}.lineDescription` | `${string}.recipientAmount` | `${string}.retainedCategory` | `${string}.retainedClass`;
export declare const formUniqueName: (formId: ID) => `${string}_form`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare const BillableOptions: BillableOptionsType[];
export interface CustomerSearchAutoComplete {
    customerSearchAutoCompleteData: AutoCompleteData;
    loadOptions?: (inputValue: string, callback: (defaultOptions: OptionType[]) => void) => void;
}
export interface LineItemsSectionProps extends FormSectionProps {
    accountsHierarchyList: NestedAccountHierarchyForReport[];
    accountsList: AccountBase[];
    classHierarchyList: NestedClassHierarchyForReport[];
    classList: ClassBase[];
    isAccountingClassesEnabled: boolean;
    isBillPayCommentingEnabled: boolean;
    isPartOfMultiLineItem: boolean;
    line: LineDataForEdit;
    lineIndex: number;
    recommendations: Recommendation[];
    uncategorizedAccounts: UncategorizedAccounts;
    autoFields?: string[];
    billId?: ID;
    billStage?: BillStageCodeType;
    customerSearchAutoComplete?: CustomerSearchAutoComplete;
    style?: React.CSSProperties;
}
export declare const LineItemsSection: ({ billId, line, lineIndex, isBillPayCommentingEnabled, accountsList, classList, style, sectionId, isDisabled, autoFields, customerSearchAutoComplete, accountsHierarchyList, classHierarchyList, recommendations, isPartOfMultiLineItem, billStage, uncategorizedAccounts, isAccountingClassesEnabled, }: LineItemsSectionProps) => import("react/jsx-runtime").JSX.Element;
