import { VueNode } from '../../_util/type';
import { ScrollTo } from '../../vc-virtual-list/List';
import { CustomTagProps, DisplayValueType, Mode, RenderNode } from '../BaseSelect';
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
export interface SelectorProps {
    id: string;
    prefixCls: string;
    showSearch?: boolean;
    open: boolean;
    values: DisplayValueType[];
    multiple?: boolean;
    mode: Mode;
    searchValue: string;
    activeValue: string;
    inputElement: VueNode;
    autofocus?: boolean;
    activeDescendantId?: string;
    tabindex?: number | string;
    disabled?: boolean;
    placeholder?: VueNode;
    removeIcon?: RenderNode;
    maxTagCount?: number | 'responsive';
    maxTagTextLength?: number;
    maxTagPlaceholder?: VueNode | ((omittedValues: DisplayValueType[]) => VueNode);
    tagRender?: (props: CustomTagProps) => VueNode;
    optionLabelRender?: (props: Record<string, any>) => VueNode;
    /** Check if `tokenSeparators` contains `\n` or `\r\n` */
    tokenWithEnter?: boolean;
    choiceTransitionName?: string;
    onToggleOpen: (open?: boolean) => void | any;
    /** `onSearch` returns go next step boolean to check if need do toggle open */
    onSearch: (searchText: string, fromTyping: boolean, isCompositing: boolean) => boolean;
    onSearchSubmit: (searchText: string) => void;
    onRemove: (value: DisplayValueType) => void;
    onInputKeyDown?: (e: KeyboardEvent) => void;
    /**
     * @private
     * This may be removed after React provides replacement of `findDOMNode`
     */
    domRef: () => HTMLDivElement;
}
export interface RefSelectorProps {
    focus: () => void;
    blur: () => void;
    scrollTo?: ScrollTo;
}
declare const Selector: DefineComponent<SelectorProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<SelectorProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
export default Selector;
