import { ClientAnalytics } from '@zeniai/client-analytics';
import { AccountBase, Amount, ClassBase, FetchState, ID, JEAccruedSchedule, ScheduleTypes, UncategorizedAccounts, VendorBase, ZeniDate } from '@zeniai/client-epic-state';
import { AutoCompleteData } from '../../../common/autoComplete/autoCompleteProps';
import { OptionType as AutoCompleteOptionType, AutoCompleteSingleSelectFieldValue } from '../../../formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField';
import { DisableMode } from '../../../formElements/common/common';
import { GroupedOption, GroupedSingleSelectFieldValue } from '../../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField';
import { SingleSelectNumericFieldValue } from '../../../formElements/singleSelectNumericField/SingleSelectNumeric';
export interface VendorSearchAutoComplete {
    vendorSearchAutoCompleteData: AutoCompleteData;
    loadOptions?: (inputValue: string, callback: (defaultOptions: AutoCompleteOptionType[]) => void) => void;
}
export interface Props {
    allAccountList: AccountBase[];
    allAccountOptions: GroupedOption[];
    allAccruedExpenseList: AccountBase[];
    allAccruedOptions: GroupedOption[];
    allClassList: ClassBase[];
    allClassOptions: GroupedOption[];
    allMonthOptions: number[];
    analytics: ClientAnalytics;
    cancelStatus: FetchState;
    controllerEmails: string[];
    controllerUserIds: string[];
    deleteStatus: FetchState;
    isAccountingClassesEnabled: boolean;
    sectionId: string;
    uncategorizedAccounts: UncategorizedAccounts;
    vendorSearchAutoComplete: VendorSearchAutoComplete;
    vendorSearchAutoCompleteData: AutoCompleteData;
    estimatedAmount?: Amount;
    isDisabled?: DisableMode;
    jeScheduledTransaction?: JEAccruedSchedule;
    memo?: string;
    selectedAccount?: ID;
    selectedAccruedExpenseCategory?: ID;
    selectedClass?: ID;
    selectedDate?: ZeniDate;
    selectedMonths?: number;
    selectedVendor?: VendorBase;
    startingBalance?: Amount;
    onCancelAccrual: (scheduleType: ScheduleTypes, jeScheduleID: ID, row?: number) => void;
    onDelete: (jeScheduleId: ID) => void;
}
export interface ScheduleDetailsAccruedExpensesSectionFormData {
    amount: number;
    memo: string;
    scheduleAccruedExpenseCategory: GroupedSingleSelectFieldValue;
    scheduleClass: GroupedSingleSelectFieldValue;
    scheduleExpenseCategory: GroupedSingleSelectFieldValue;
    startingBalance: number;
    vendor: AutoCompleteSingleSelectFieldValue;
    months?: SingleSelectNumericFieldValue;
    startDate?: ZeniDate;
}
type FormDataKeys = keyof ScheduleDetailsAccruedExpensesSectionFormData;
declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.months` | `${string}.vendor` | `${string}.startDate` | `${string}.memo` | `${string}.amount` | `${string}.scheduleAccruedExpenseCategory` | `${string}.scheduleClass` | `${string}.scheduleExpenseCategory` | `${string}.startingBalance`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare function ScheduleDetailsAccruedExpensesSection({ analytics, sectionId, jeScheduledTransaction, deleteStatus, cancelStatus, allAccruedOptions, allAccruedExpenseList, allAccountOptions, allAccountList, allClassList, allClassOptions, allMonthOptions, controllerUserIds, controllerEmails, isAccountingClassesEnabled, memo, uncategorizedAccounts, estimatedAmount, startingBalance, selectedAccruedExpenseCategory, selectedAccount, selectedClass, selectedDate, selectedMonths, isDisabled, vendorSearchAutoComplete, onDelete, onCancelAccrual, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
export {};
