import type { PropType, Plugin, ExtractPropTypes } from 'vue';
import { nextTick } from 'vue';
interface MentionsConfig {
    prefix?: string | string[];
    split?: string;
}
export interface MentionsOptionProps {
    value: string;
    disabled?: boolean;
    label?: string | number | ((o: MentionsOptionProps) => any);
    [key: string]: any;
}
interface MentionsEntity {
    prefix: string;
    value: string;
}
export declare type MentionPlacement = 'top' | 'bottom';
declare const getMentions: (value: string, config: MentionsConfig) => MentionsEntity[];
declare const mentionsProps: {
    loading: import("vue-types").VueTypeValidableDef<boolean>;
    onFocus: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onBlur: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onSelect: {
        type: PropType<(option: MentionsOptionProps, prefix: string) => void>;
    };
    onChange: {
        type: PropType<(text: string) => void>;
    };
    notFoundContent: import("vue-types").VueTypeValidableDef<any>;
    defaultValue: StringConstructor;
    id: StringConstructor;
    autofocus: import("vue-types").VueTypeValidableDef<boolean>;
    prefix: import("vue-types").VueTypeDef<string | string[]>;
    prefixCls: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    value: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    disabled: import("vue-types").VueTypeValidableDef<boolean>;
    split: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    transitionName: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    placement: import("vue-types").VueTypeDef<"bottom" | "top">;
    character: import("vue-types").VueTypeValidableDef<any>;
    characterRender: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    filterOption: {
        type: PropType<false | typeof import("../vc-mentions/src/util").filterOption>;
    };
    validateSearch: import("vue-types").VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    };
    getPopupContainer: {
        type: PropType<() => HTMLElement>;
    };
    options: {
        type: PropType<any>;
        default: () => any;
    };
    rows: (StringConstructor | NumberConstructor)[];
    direction: {
        type: PropType<import("../vc-mentions/src/mentionsProps").Direction>;
    };
};
export declare type MentionsProps = Partial<ExtractPropTypes<typeof mentionsProps>>;
export declare const MentionsOption: any;
declare const _default: {
    new (...args: any[]): {
        $: import("vue").ComponentInternalInstance;
        $data: {};
        $props: Partial<{
            split: string;
            value: string;
            prefixCls: string;
            options: any;
            transitionName: string;
            characterRender: (...args: any[]) => any;
            validateSearch: (...args: any[]) => any;
        }> & Omit<Readonly<{
            loading?: unknown;
            onFocus?: unknown;
            onBlur?: unknown;
            onSelect?: unknown;
            onChange?: unknown;
            notFoundContent?: unknown;
            defaultValue?: unknown;
            id?: unknown;
            autofocus?: unknown;
            prefix?: unknown;
            prefixCls?: unknown;
            value?: unknown;
            disabled?: unknown;
            split?: unknown;
            transitionName?: unknown;
            placement?: unknown;
            character?: unknown;
            characterRender?: unknown;
            filterOption?: unknown;
            validateSearch?: unknown;
            getPopupContainer?: unknown;
            options?: unknown;
            rows?: unknown;
            direction?: unknown;
        } & {
            split: string;
            value: string;
            prefixCls: string;
            transitionName: string;
        } & {
            loading?: boolean;
            disabled?: boolean;
            id?: string;
            prefix?: string | string[];
            onFocus?: (e: FocusEvent) => void;
            onBlur?: (e: FocusEvent) => void;
            onChange?: (text: string) => void;
            onSelect?: (option: MentionsOptionProps, prefix: string) => void;
            getPopupContainer?: () => HTMLElement;
            direction?: import("../vc-mentions/src/mentionsProps").Direction;
            options?: any;
            notFoundContent?: any;
            autofocus?: boolean;
            placement?: "bottom" | "top";
            defaultValue?: string;
            filterOption?: false | typeof import("../vc-mentions/src/util").filterOption;
            character?: any;
            characterRender?: (...args: any[]) => any;
            validateSearch?: (...args: any[]) => any;
            rows?: string | number;
        }> & {
            onFocus?: (...args: any[]) => any;
            onBlur?: (...args: any[]) => any;
            onChange?: (...args: any[]) => any;
            onSelect?: (...args: any[]) => any;
            "onUpdate:value"?: (...args: any[]) => any;
            onPressenter?: (...args: any[]) => any;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "split" | "value" | "prefixCls" | "options" | "transitionName" | "characterRender" | "validateSearch">;
        $attrs: {
            [x: string]: unknown;
        };
        $refs: {
            [x: string]: unknown;
        };
        $slots: Readonly<{
            [name: string]: import("vue").Slot;
        }>;
        $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>;
        $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>;
        $emit: (event: "select" | "blur" | "change" | "focus" | "update:value" | "pressenter", ...args: any[]) => void;
        $el: any;
        $options: import("vue").ComponentOptionsBase<Readonly<{
            loading?: unknown;
            onFocus?: unknown;
            onBlur?: unknown;
            onSelect?: unknown;
            onChange?: unknown;
            notFoundContent?: unknown;
            defaultValue?: unknown;
            id?: unknown;
            autofocus?: unknown;
            prefix?: unknown;
            prefixCls?: unknown;
            value?: unknown;
            disabled?: unknown;
            split?: unknown;
            transitionName?: unknown;
            placement?: unknown;
            character?: unknown;
            characterRender?: unknown;
            filterOption?: unknown;
            validateSearch?: unknown;
            getPopupContainer?: unknown;
            options?: unknown;
            rows?: unknown;
            direction?: unknown;
        } & {
            split: string;
            value: string;
            prefixCls: string;
            transitionName: string;
        } & {
            loading?: boolean;
            disabled?: boolean;
            id?: string;
            prefix?: string | string[];
            onFocus?: (e: FocusEvent) => void;
            onBlur?: (e: FocusEvent) => void;
            onChange?: (text: string) => void;
            onSelect?: (option: MentionsOptionProps, prefix: string) => void;
            getPopupContainer?: () => HTMLElement;
            direction?: import("../vc-mentions/src/mentionsProps").Direction;
            options?: any;
            notFoundContent?: any;
            autofocus?: boolean;
            placement?: "bottom" | "top";
            defaultValue?: string;
            filterOption?: false | typeof import("../vc-mentions/src/util").filterOption;
            character?: any;
            characterRender?: (...args: any[]) => any;
            validateSearch?: (...args: any[]) => any;
            rows?: string | number;
        }> & {
            onFocus?: (...args: any[]) => any;
            onBlur?: (...args: any[]) => any;
            onChange?: (...args: any[]) => any;
            onSelect?: (...args: any[]) => any;
            "onUpdate:value"?: (...args: any[]) => any;
            onPressenter?: (...args: any[]) => any;
        }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "blur" | "change" | "focus" | "update:value" | "pressenter")[], string, {
            split: string;
            value: string;
            prefixCls: string;
            options: any;
            transitionName: string;
            characterRender: (...args: any[]) => any;
            validateSearch: (...args: any[]) => any;
        }> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
            renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>>, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: typeof nextTick;
        $watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean>): import("vue").WatchStopHandle;
    } & Readonly<{
        loading?: unknown;
        onFocus?: unknown;
        onBlur?: unknown;
        onSelect?: unknown;
        onChange?: unknown;
        notFoundContent?: unknown;
        defaultValue?: unknown;
        id?: unknown;
        autofocus?: unknown;
        prefix?: unknown;
        prefixCls?: unknown;
        value?: unknown;
        disabled?: unknown;
        split?: unknown;
        transitionName?: unknown;
        placement?: unknown;
        character?: unknown;
        characterRender?: unknown;
        filterOption?: unknown;
        validateSearch?: unknown;
        getPopupContainer?: unknown;
        options?: unknown;
        rows?: unknown;
        direction?: unknown;
    } & {
        split: string;
        value: string;
        prefixCls: string;
        transitionName: string;
    } & {
        loading?: boolean;
        disabled?: boolean;
        id?: string;
        prefix?: string | string[];
        onFocus?: (e: FocusEvent) => void;
        onBlur?: (e: FocusEvent) => void;
        onChange?: (text: string) => void;
        onSelect?: (option: MentionsOptionProps, prefix: string) => void;
        getPopupContainer?: () => HTMLElement;
        direction?: import("../vc-mentions/src/mentionsProps").Direction;
        options?: any;
        notFoundContent?: any;
        autofocus?: boolean;
        placement?: "bottom" | "top";
        defaultValue?: string;
        filterOption?: false | typeof import("../vc-mentions/src/util").filterOption;
        character?: any;
        characterRender?: (...args: any[]) => any;
        validateSearch?: (...args: any[]) => any;
        rows?: string | number;
    }> & {
        onFocus?: (...args: any[]) => any;
        onBlur?: (...args: any[]) => any;
        onChange?: (...args: any[]) => any;
        onSelect?: (...args: any[]) => any;
        "onUpdate:value"?: (...args: any[]) => any;
        onPressenter?: (...args: any[]) => any;
    } & import("vue").ShallowUnwrapRef<() => JSX.Element> & {} & {} & import("vue").ComponentCustomProperties;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<{
    loading?: unknown;
    onFocus?: unknown;
    onBlur?: unknown;
    onSelect?: unknown;
    onChange?: unknown;
    notFoundContent?: unknown;
    defaultValue?: unknown;
    id?: unknown;
    autofocus?: unknown;
    prefix?: unknown;
    prefixCls?: unknown;
    value?: unknown;
    disabled?: unknown;
    split?: unknown;
    transitionName?: unknown;
    placement?: unknown;
    character?: unknown;
    characterRender?: unknown;
    filterOption?: unknown;
    validateSearch?: unknown;
    getPopupContainer?: unknown;
    options?: unknown;
    rows?: unknown;
    direction?: unknown;
} & {
    split: string;
    value: string;
    prefixCls: string;
    transitionName: string;
} & {
    loading?: boolean;
    disabled?: boolean;
    id?: string;
    prefix?: string | string[];
    onFocus?: (e: FocusEvent) => void;
    onBlur?: (e: FocusEvent) => void;
    onChange?: (text: string) => void;
    onSelect?: (option: MentionsOptionProps, prefix: string) => void;
    getPopupContainer?: () => HTMLElement;
    direction?: import("../vc-mentions/src/mentionsProps").Direction;
    options?: any;
    notFoundContent?: any;
    autofocus?: boolean;
    placement?: "bottom" | "top";
    defaultValue?: string;
    filterOption?: false | typeof import("../vc-mentions/src/util").filterOption;
    character?: any;
    characterRender?: (...args: any[]) => any;
    validateSearch?: (...args: any[]) => any;
    rows?: string | number;
}> & {
    onFocus?: (...args: any[]) => any;
    onBlur?: (...args: any[]) => any;
    onChange?: (...args: any[]) => any;
    onSelect?: (...args: any[]) => any;
    "onUpdate:value"?: (...args: any[]) => any;
    onPressenter?: (...args: any[]) => any;
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "blur" | "change" | "focus" | "update:value" | "pressenter")[], "select" | "blur" | "change" | "focus" | "update:value" | "pressenter", {
    split: string;
    value: string;
    prefixCls: string;
    options: any;
    transitionName: string;
    characterRender: (...args: any[]) => any;
    validateSearch: (...args: any[]) => any;
}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Plugin & {
    getMentions: typeof getMentions;
    readonly Option: any;
};
export default _default;
