import { RegisterOptions } from 'react-hook-form';
import { StylesConfig } from 'react-select';
import { ID } from '@zeniai/client-epic-state';
import { DisableMode } from '../common/common';
/**
 * Component & its Props
 */
export interface OptionType {
    label: string;
    value: string;
    isDeleted?: boolean;
}
export interface MultiSelectFieldValue {
    allOptions: OptionType[];
    selectedOptions: string[];
}
export interface CreatableMultiSelectFieldProps {
    defaultValue: MultiSelectFieldValue;
    name: string;
    customStyleConfig?: StylesConfig<OptionType, true>;
    isDisabled?: DisableMode;
    isListView?: boolean;
    isLoading?: boolean;
    isOptionRemovable?: boolean;
    isStyledCapsule?: boolean;
    maxAllowedSelectedValues?: number;
    placeholder?: string;
    placeholderComponent?: React.ReactElement;
    registerOptions?: RegisterOptions;
    customCreateLabel?: (inputString: string) => JSX.Element | string;
    onCreateOption?: (option: string) => void;
    onDeleteOption?: (tagId: ID) => void;
}
declare const CreatableMultiSelectField: ({ name, registerOptions, defaultValue, maxAllowedSelectedValues, isLoading, isDisabled, customStyleConfig, placeholder, placeholderComponent, isListView, isStyledCapsule, onCreateOption, onDeleteOption, customCreateLabel, }: CreatableMultiSelectFieldProps) => import("react/jsx-runtime").JSX.Element;
/**
 * Helpers
 */
export { CreatableMultiSelectField };
