import React, { ReactNode } from 'react';
import { AsyncSelect, Option, SelectActions } from '../../helpers';
export type SearchSelectorActions<T extends Option> = {
    inputValue: string;
    onBack: () => void;
    onRemove?: (event?: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;
    parent: T;
} & SelectActions<T>;
export type SearchSelectorProps<T extends Option> = AsyncSelect<T> & {
    disabled?: boolean;
    isDefaultOpened?: boolean;
    isSearchable?: boolean;
    maxWidth100?: boolean;
    name?: string;
    onChange: (items?: T | null) => void;
    placeholderElement?: JSX.Element;
    preOptions?: Array<{
        id: string;
        name: string;
    }>;
    renderMenuFooter?: (payload: SearchSelectorActions<T>) => JSX.Element;
    renderMenuHeader?: (payload: SearchSelectorActions<T>) => JSX.Element;
    renderSelectedItem?: (item: T, actions?: SearchSelectorActions<T>) => JSX.Element;
    showLabel?: boolean;
    suffix?: ReactNode;
    value?: T | null;
};
export declare const SearchSelector: typeof SearchSelectorInner;
declare function SearchSelectorInner<T extends Option>({ checkIsAlreadySelectedFunction, renderSelectedItem, renderOption: renderOptionOuter, renderMenuFooter, renderMenuHeader, renderPrevSelectedItem, onChange, onBlur, loadOptions, menuWidth, menuPlacement, menuIsWithArrow, placeholder, value, emptyState, formRef, valueContainerWrapper, disabled, placeholderElement, portalElement, preOptions, isDefaultOpened, }: SearchSelectorProps<T>): JSX.Element;
export {};
