import { Control } from 'react-hook-form';
import { ClientAnalytics } from '@zeniai/client-analytics';
import { ClassBase, ID, PeoplePageMode, Person, User, UserRoleType } from '@zeniai/client-epic-state';
import { FormSectionProps } from '../../formElements/common/formSection';
import { UserSingleSelectWithSubtitlesFieldValue } from '../../formElements/userSingleSelectWithSubtitlesField/UserSingleSelectWithSubtitlesField';
import { SingleSelectWithoutClearableFieldValue } from '../../singleSelectWithoutClearable/SingleSelectWithoutClearableField';
import { ProductWiseRoleOption } from '../nonZeniRoleConstants';
import { UserItemsSectionFormData } from './InvitePeopleUserItemSection';
export interface UserData {
    department?: SingleSelectWithoutClearableFieldValue;
    email?: string;
    manager?: UserSingleSelectWithSubtitlesFieldValue;
    role?: UserRoleType;
}
export type FormDataKeys = keyof UserItemsSectionFormData;
export declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.email` | `${string}.role` | `${string}.manager` | `${string}.department` | `${string}.nonZeniRole` | `${string}.userIndex`;
export declare const formUniqueName: (formId: ID) => `${string}_form`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export interface UserItemsSectionProps extends FormSectionProps {
    classList: ClassBase[];
    control: Control;
    controllersList: User[];
    customerRoleOptions: ProductWiseRoleOption[];
    deleteConfirmationIndex: number;
    isAccountingClassesEnabled: boolean;
    isBankingOnlyTenant: boolean;
    isCardsOnlyTenant: boolean;
    isZeniTenant: boolean;
    managersList: Person[];
    mode: PeoplePageMode;
    analytics?: ClientAnalytics;
    isEdit?: boolean;
    person?: Person;
    style?: React.CSSProperties;
    updateDeleteConfirmationIndex: (index: number) => void;
}
export declare const getDefaultUserInfo: (userIndex: number, managersList: Person[], classList: ClassBase[], mode: PeoplePageMode, customerRoleOptions: ProductWiseRoleOption[], isBankingOnlyTenant: boolean, isCardsOnlyTenant: boolean) => UserItemsSectionFormData;
export declare const AllUserItems: ({ isDisabled, control, deleteConfirmationIndex, updateDeleteConfirmationIndex, style, sectionId, mode, isZeniTenant, managersList, classList, controllersList, customerRoleOptions, isAccountingClassesEnabled, isBankingOnlyTenant, isCardsOnlyTenant, isEdit, person, analytics, }: UserItemsSectionProps) => import("react/jsx-runtime").JSX.Element;
