import { ExtractPropTypes, DefineComponent, PropType, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { OptionProps } from './Option';
import { vcMentionsProps, Direction } from './mentionsProps';
import { VueTypeDef, VueTypeValidableDef } from 'vue-types';
import { filterOption } from './util';
export type MentionsProps = Partial<ExtractPropTypes<typeof vcMentionsProps>>;
declare const _default: DefineComponent<ExtractPropTypes<{
    dropdownClassName: StringConstructor;
    autofocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    prefix: VueTypeDef<string | string[]>;
    prefixCls: StringConstructor;
    value: StringConstructor;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    split: StringConstructor;
    transitionName: StringConstructor;
    placement: VueTypeDef<"bottom" | "top">;
    character: VueTypeValidableDef<any>;
    characterRender: FunctionConstructor;
    filterOption: {
        type: PropType< filterOption | false>;
    };
    validateSearch: FunctionConstructor;
    getPopupContainer: {
        type: PropType<() => HTMLElement>;
    };
    options: {
        type: PropType<OptionProps[]>;
        default: OptionProps[];
    };
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    rows: (StringConstructor | NumberConstructor)[];
    direction: {
        type: PropType<Direction>;
    };
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("search" | "select" | "change" | "blur" | "focus" | "pressenter")[], "search" | "select" | "change" | "blur" | "focus" | "pressenter", PublicProps, Readonly<ExtractPropTypes<{
    dropdownClassName: StringConstructor;
    autofocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    prefix: VueTypeDef<string | string[]>;
    prefixCls: StringConstructor;
    value: StringConstructor;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    split: StringConstructor;
    transitionName: StringConstructor;
    placement: VueTypeDef<"bottom" | "top">;
    character: VueTypeValidableDef<any>;
    characterRender: FunctionConstructor;
    filterOption: {
        type: PropType< filterOption | false>;
    };
    validateSearch: FunctionConstructor;
    getPopupContainer: {
        type: PropType<() => HTMLElement>;
    };
    options: {
        type: PropType<OptionProps[]>;
        default: OptionProps[];
    };
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    rows: (StringConstructor | NumberConstructor)[];
    direction: {
        type: PropType<Direction>;
    };
}>> & Readonly<{
    onFocus?: ((...args: any[]) => any) | undefined;
    onBlur?: ((...args: any[]) => any) | undefined;
    onChange?: ((...args: any[]) => any) | undefined;
    onSelect?: ((...args: any[]) => any) | undefined;
    onSearch?: ((...args: any[]) => any) | undefined;
    onPressenter?: ((...args: any[]) => any) | undefined;
}>, {
    disabled: boolean;
    autofocus: boolean;
    loading: boolean;
    options: OptionProps[];
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
