import { AccountBase, ClassBase, FetchState, ID, JEScheduledTransaction, ScheduleDaysOfMonth, UncategorizedAccounts, ZeniDate } from '@zeniai/client-epic-state';
import { AutoCompleteSingleSelectFieldValue } from '../../../formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField';
import { DisableMode } from '../../../formElements/common/common';
import { DayOfMonthSelectorOptionsSelectValue } from '../../../formElements/dayOfMonthSelector/DayOfMonthSelector';
import { GroupedOption, GroupedSingleSelectFieldValue } from '../../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField';
import { SingleSelectNumericFieldValue } from '../../../formElements/singleSelectNumericField/SingleSelectNumeric';
export interface Props {
    allAccountList: AccountBase[];
    allAccountOptions: GroupedOption[];
    allClassList: ClassBase[];
    allClassOptions: GroupedOption[];
    allMonthOptions: number[];
    allowCreateSchedule: boolean;
    isAccountingClassesEnabled: boolean;
    jeScheduledTransaction: JEScheduledTransaction;
    sectionId: string;
    uncategorizedAccounts: UncategorizedAccounts;
    updateStatus: FetchState;
    isDisabled?: DisableMode;
    lastDayOfMonth?: boolean;
    selectedAccount?: ID;
    selectedClass?: ID;
    selectedDate?: ZeniDate;
    selectedMonths?: number;
    selectedPostingDay?: ScheduleDaysOfMonth;
    onCreateSchedule: () => void;
    onDelete: (jeScheduleId: ID) => void;
    onMarkAsComplete: () => void;
}
export interface ScheduleDetailsSectionFormData {
    postingDate: DayOfMonthSelectorOptionsSelectValue;
    scheduleClass: GroupedSingleSelectFieldValue;
    scheduleExpenseCategory: GroupedSingleSelectFieldValue;
    months?: SingleSelectNumericFieldValue;
    startDate?: ZeniDate;
    vendor?: AutoCompleteSingleSelectFieldValue;
}
type FormDataKeys = keyof ScheduleDetailsSectionFormData;
export declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.months` | `${string}.vendor` | `${string}.startDate` | `${string}.scheduleClass` | `${string}.scheduleExpenseCategory` | `${string}.postingDate`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare function ScheduleDetailsSection({ sectionId, jeScheduledTransaction, updateStatus, allAccountOptions, allAccountList, allClassList, allClassOptions, allMonthOptions, isAccountingClassesEnabled, uncategorizedAccounts, selectedAccount, selectedClass, selectedDate, selectedMonths, selectedPostingDay, lastDayOfMonth, isDisabled, allowCreateSchedule, onCreateSchedule, onDelete, onMarkAsComplete, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
export {};
