import React, { ReactNode } from 'react';
import { AsyncSelect, MultiSelectActions, Option, SelectBaseProps } from '../../helpers';
type Actions<O extends Option> = {
    inputValue: string;
    onBack: () => void;
    parent: O;
} & MultiSelectActions<O>;
type MultiSearchSelectOverrideProps<O extends Option> = {
    defaultIsOpen?: boolean;
    disabled?: boolean;
    exceptSelectorPrefix?: string;
    hideMenuOnSelect?: boolean;
    hideSelectedItems?: boolean;
    isHideExtras?: boolean;
    isShowingPlus?: boolean;
    onChange: (items: O[]) => void;
    onTabKey?: (payload: Actions<O> & {
        highlightedItem: O;
    }) => void;
    options?: O[];
    placeholderElement?: JSX.Element;
    plusIcon?: JSX.Element;
    renderMenuFooter?: (payload: Actions<O>) => JSX.Element;
    renderMenuHeader?: (payload: Actions<O>) => JSX.Element;
    renderSelectedItem?: (item: O, actions?: Actions<O>) => JSX.Element;
    shouldRenderOptionAsPill?: boolean;
    value?: O[];
};
export type MultiSearchSelectProps<O extends Option> = MultiSearchSelectOverrideProps<O> & Omit<SelectBaseProps<O>, keyof MultiSearchSelectOverrideProps<O>> & Omit<AsyncSelect<O>, keyof MultiSearchSelectOverrideProps<O>> & {
    preOptions?: never;
};
export declare const onChangeOnSelectContext: React.Context<{
    triggerOnChangeOnSelect: boolean;
}>;
/**
 * @description Use this, if you want to trigger onChange after selecting an option in multiSelector
 */
export declare const OnChangeOnSelectContextProvider: React.NamedExoticComponent<{
    children: ReactNode;
    trigger?: boolean;
}>;
export declare const MultiSearchSelector: typeof MultiSearchInner;
declare function MultiSearchInner<T extends Option>({ checkIsAlreadySelectedFunction, renderSelectedItem, plusIcon, renderOption: renderOptionOuter, renderMenuFooter, renderMenuHeader, renderPrevSelectedItem, placeholder, menuPlacement, menuWidth, menuIsWithArrow, options, loadOptions, onChange, onTabKey, value, emptyState, valueContainerWrapper, exceptSelectorPrefix, hideSelectedItems, disabled, defaultIsOpen, isShowingPlus, isHideExtras, shouldRenderOptionAsPill, hideMenuOnSelect, portalElement, preOptions, placeholderElement: placeholderElementOuter, }: MultiSearchSelectProps<T>): JSX.Element;
export {};
