import { AccountBase, BillStageCodeType, ClassBase, ID, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, Recommendation, RecommendationByLineId, UncategorizedAccounts } from '@zeniai/client-epic-state';
import { FormSectionProps } from '../../../../formElements/common/formSection';
import { LineItemsSectionFormData, LineItemsSectionFormDataKeys } from '../EditableBillDetailPageHelpers';
import { CustomerSearchAutoComplete } from './LineItemsSection';
import { BillableOptionsType } from './formElements/singleSelectForBills/SingleSelectField';
export declare const uniqueName: (sectionId: string, key: LineItemsSectionFormDataKeys) => `${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 LineItemsSectionProps extends FormSectionProps {
    accountsHierarchyList: NestedAccountHierarchyForReport[];
    accountsList: AccountBase[];
    classHierarchyList: NestedClassHierarchyForReport[];
    classList: ClassBase[];
    deleteConfirmationIndex: number;
    isAccountingClassesEnabled: boolean;
    isBillPayCommentingEnabled: boolean;
    uncategorizedAccounts: UncategorizedAccounts;
    vendorRecommendations: Recommendation[];
    autoFields?: Record<ID, string[]>;
    billId?: ID;
    billStage?: BillStageCodeType;
    customerSearchAutoComplete?: CustomerSearchAutoComplete;
    recommendationByLineId?: RecommendationByLineId;
    style?: React.CSSProperties;
    vendorAccountId?: ID;
    vendorClassId?: ID;
    setDeleteConfirmationIndex: (index: number) => void;
}
export declare const getDefaultLineInfo: (lineId: number, lineIndex: number, accountsHierarchyList: NestedAccountHierarchyForReport[], classHierarchyList: NestedClassHierarchyForReport[], vendorRecommendations: Recommendation[], lineItem: LineItemsSectionFormData, vendorAccountData?: AccountBase, vendorClassData?: ClassBase) => LineItemsSectionFormData;
export declare const AllLineItemsSection: ({ isDisabled, isBillPayCommentingEnabled, deleteConfirmationIndex, accountsList, classList, accountsHierarchyList, classHierarchyList, sectionId, style, autoFields, vendorRecommendations, vendorAccountId, vendorClassId, customerSearchAutoComplete, recommendationByLineId, billId, uncategorizedAccounts, billStage, setDeleteConfirmationIndex, isAccountingClassesEnabled, }: LineItemsSectionProps) => import("react/jsx-runtime").JSX.Element;
