import { filterOption } from './helper';
import type { MentionProps } from './mention';
import type { CSSProperties } from 'vue';
import type { InputInstance } from 'element-plus/es/components/input';
import type { TooltipInstance } from 'element-plus/es/components/tooltip';
import type { MentionOption } from './types';
declare var __VLS_15: string | number, __VLS_16: any, __VLS_39: string | number, __VLS_40: any;
type __VLS_Slots = {} & {
    [K in NonNullable<typeof __VLS_15>]?: (props: typeof __VLS_16) => any;
} & {
    [K in NonNullable<typeof __VLS_39>]?: (props: typeof __VLS_40) => any;
};
declare const __VLS_base: import("vue").DefineComponent<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<MentionProps>, {
    options: () => never[];
    prefix: string;
    split: string;
    filterOption: () => (pattern: string, option: MentionOption) => boolean;
    placement: string;
    offset: number;
    popperOptions: () => {};
    props: () => Required<import("./mention").MentionOptionProps>;
    disabled: undefined;
    modelValue: "";
    modelModifiers: () => {};
    type: import("element-plus/es/components/input").InputType;
    autocomplete: "off";
    clearIcon: any;
    wordLimitPosition: "inside";
    tabindex: 0;
    validateEvent: true;
    inputStyle: () => {};
    rows: 2;
}>, {
    input: import("vue").Ref<InputInstance | undefined>;
    tooltip: import("vue").Ref<TooltipInstance | undefined>;
    dropdownVisible: import("vue").ComputedRef<boolean>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    input: (value: string) => void;
    search: (pattern: string, prefix: string) => void;
    select: (option: MentionOption, prefix: string) => void;
    focus: (evt: FocusEvent) => void;
    "update:modelValue": (value: string) => void;
    blur: (evt: FocusEvent) => void;
    "whole-remove": (pattern: string, prefix: string) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaultsLocal<__VLS_TypePropsToOption<MentionProps>, {
    options: () => never[];
    prefix: string;
    split: string;
    filterOption: () => (pattern: string, option: MentionOption) => boolean;
    placement: string;
    offset: number;
    popperOptions: () => {};
    props: () => Required<import("./mention").MentionOptionProps>;
    disabled: undefined;
    modelValue: "";
    modelModifiers: () => {};
    type: import("element-plus/es/components/input").InputType;
    autocomplete: "off";
    clearIcon: any;
    wordLimitPosition: "inside";
    tabindex: 0;
    validateEvent: true;
    inputStyle: () => {};
    rows: 2;
}>>> & {
    "onUpdate:modelValue"?: ((value: string) => any) | undefined;
    onSelect?: ((option: MentionOption, prefix: string) => any) | undefined;
    onInput?: ((value: string) => any) | undefined;
    onFocus?: ((evt: FocusEvent) => any) | undefined;
    onBlur?: ((evt: FocusEvent) => any) | undefined;
    onSearch?: ((pattern: string, prefix: string) => any) | undefined;
    "onWhole-remove"?: ((pattern: string, prefix: string) => any) | undefined;
}, {
    disabled: boolean;
    tabindex: string | number;
    split: string;
    offset: number;
    type: import("element-plus/es/components/input").InputType;
    props: import("./mention").MentionOptionProps;
    modelValue: string;
    placement: "bottom" | "top";
    options: MentionOption[];
    prefix: string | string[];
    modelModifiers: import("element-plus/es/components/input").InputModelModifiers;
    autocomplete: string;
    clearIcon: string | import("vue").Component;
    wordLimitPosition: "inside" | "outside";
    validateEvent: boolean;
    inputStyle: string | false | CSSProperties | import("vue").StyleValue[] | null;
    rows: number;
    popperOptions: Partial<import("@popperjs/core").Options>;
    filterOption: false | typeof filterOption;
}, {}>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_TypePropsToOption<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: import('vue').PropType<Required<T>[K]>;
    } : {
        type: import('vue').PropType<T[K]>;
        required: true;
    };
};
type __VLS_WithDefaultsLocal<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
        default: D[K];
    }> : P[K];
};
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
type __VLS_PrettifyLocal<T> = {
    [K in keyof T as K]: T[K];
} & {};
