import React, { FC } from 'react';
import { AddStuffProps, GroupHeaderProps, ListItemColorProps, ListItemProps, ListItemSelectorProps, SearchProps, SubMenuProps, SupportTextProps } from '@parlor/ui/menu-list-item';
import { OptionsSelectItem, SelectActionType } from '../../select';
export type MultiSelectProps<T extends OptionsSelectItem> = {
    actions?: {
        onChange?: (newValue: T[], id?: string) => void;
        onClose?: () => void;
        onOpen?: () => void;
        onSearch?: (value: string) => void;
        onSelect?: (type: SelectActionType, value: T, event: React.BaseSyntheticEvent) => void;
    };
    defaultValue?: T[];
    getOptionsLabel: (item: T) => string;
    isLoading?: boolean;
    label?: string;
    menuListProps: {
        component: FC<AddStuffProps> | FC<GroupHeaderProps> | FC<ListItemProps> | FC<ListItemColorProps> | FC<ListItemSelectorProps> | FC<SearchProps> | FC<SubMenuProps> | FC<SupportTextProps>;
        header?: JSX.Element;
    };
    options?: T[];
    placeholder?: string;
    portalElement?: HTMLElement;
    value?: T[];
};
export declare const MultiSelect: <T extends OptionsSelectItem>(props: MultiSelectProps<T>, ref?: React.ForwardedRef<HTMLDivElement>) => JSX.Element;
