import React, { Component, ComponentType, MouseEventHandler, RefObject } from 'react';
import { IStyledComponent } from 'styled-components';
import DropdownList from './dropdown-list';
import { IntlShape } from 'react-intl';
import { ListItemProps } from './dropdown-select';
export type DropdownWrapperProps = {
    placement?: string;
    width: number;
};
export type ItemSelectorProps<Option> = {
    selectedItems?: ReadonlyArray<Option> | string | number | boolean | object | null;
    options: ReadonlyArray<Option>;
    onChange: (items: ReadonlyArray<Option> | string | number | boolean | object | null) => void;
    fixedOptions?: ReadonlyArray<Option> | null;
    erasable?: boolean;
    showArrow?: boolean;
    searchOptions?: (value: any, opt: Option) => any;
    searchable?: boolean;
    displayOption?: string | ((opt: Option) => string);
    getOptionValue?: string | ((opt: Option) => any);
    filterOption?: string | ((opt: Option) => boolean);
    placement?: string;
    disabled?: boolean;
    isError?: boolean;
    multiSelect?: boolean;
    inputTheme?: string;
    onOpen?: () => void;
    size?: string;
    onBlur?: () => void;
    placeholder?: string;
    closeOnSelect?: boolean;
    typeaheadPlaceholder?: string;
    DropDownWrapperComponent?: ComponentType<any> | null;
    DropdownHeaderComponent?: ComponentType<any> | null;
    DropDownRenderComponent?: ComponentType<any>;
    DropDownLineItemRenderComponent?: ComponentType<ListItemProps<Option>>;
    CustomChickletComponent?: ComponentType<any>;
    intl: IntlShape;
    className?: string;
    reorderItems?: (newOrder: any) => void;
    showDropdownOnMount?: boolean;
};
declare class ItemSelectorUnmemoized extends Component<ItemSelectorProps<any>> {
    static defaultProps: {
        multiSelect: boolean;
        placeholder: string;
        closeOnSelect: boolean;
        searchable: boolean;
        DropDownRenderComponent: typeof DropdownList;
        DropDownLineItemRenderComponent: ({ value, displayOption, disabled }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
        DropDownWrapperComponent: IStyledComponent<"web", DropdownWrapperProps>;
        reorderItems: undefined;
        className: string;
    };
    state: {
        showTypeahead: boolean;
        dimensions: {
            width: number;
        };
    };
    componentDidMount(): void;
    componentWillUnmount(): void;
    root: RefObject<HTMLDivElement>;
    handleClickOutside: () => void;
    _handleResize: (dimensions: any) => void;
    _hideTypeahead: () => void;
    _onBlur: () => void;
    _removeItem: (item: any, e: any) => void;
    _selectItem: (item: any) => void;
    _onErase: MouseEventHandler;
    _showTypeahead: MouseEventHandler;
    _renderDropdown(intl: IntlShape): React.JSX.Element;
    render(): React.JSX.Element;
}
declare const _default: React.FC<import("react-intl").WithIntlProps<ItemSelectorProps<any> & React.RefAttributes<ItemSelectorUnmemoized>>> & {
    WrappedComponent: React.ComponentType<ItemSelectorProps<any> & React.RefAttributes<ItemSelectorUnmemoized>>;
};
export default _default;
