import { RefCallBack } from 'react-hook-form';
import { StylesConfig } from 'react-select';
import { User } from '@zeniai/client-epic-state';
export interface RoleSelectableUser extends User {
    isRoleSelected: boolean;
    isUserSelectionUpdated?: boolean;
}
export interface NonUserOption {
    label: string;
    position: "top" | "bottom";
    subtitles: string[];
    value: string;
}
export interface Props {
    allNonUsers: NonUserOption[];
    allUsers: User[];
    fieldRef: RefCallBack;
    hideEmailTooltip: boolean;
    name: string;
    selectedNonUsers: NonUserOption[];
    selectedUsers: User[];
    shouldHaveBackgroundColor: boolean;
    showBackgroundColorIfHasAnySelectedOption: boolean;
    containerWidth?: string;
    customization?: {
        placeholderLabel?: string;
    };
    customStyleConfig?: StylesConfig<OptionType, boolean>;
    disable?: boolean;
    disabledOptionHint?: string;
    hideMultiValueOnBlur?: boolean;
    isListLoading?: boolean;
    menuMinWidth?: string;
    operator?: "or" | "and";
    onSelectedUsersChanged: (selectedUsers: User[], nonUsers: NonUserOption[]) => void;
    disableCurrentOption?: (option: string) => boolean;
    onBlur?: () => void;
    valueToSubtitle?: (value: string) => (string | JSX.Element)[];
}
interface OptionTypeBase {
    [key: string]: any;
}
export interface OptionType extends OptionTypeBase {
    label: string;
    value: string;
}
export default function UserMultiSelect({ allUsers, allNonUsers, selectedUsers, selectedNonUsers, name, fieldRef, shouldHaveBackgroundColor, hideEmailTooltip, showBackgroundColorIfHasAnySelectedOption, disable, customization: { placeholderLabel }, operator, containerWidth, isListLoading, menuMinWidth, hideMultiValueOnBlur, customStyleConfig, disabledOptionHint, onBlur, disableCurrentOption, onSelectedUsersChanged, valueToSubtitle, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
export {};
