import { Key, PopupItemState, PopupPlacement } from './symbol';
declare function add(options: Record<string, any>): Promise<Key>;
declare function remove(key: Key): Promise<boolean>;
declare function has(key: Key): boolean;
declare function find(key: Key): {
    [x: string]: unknown;
    key: Key;
    content: string;
    closable: boolean;
    height: number;
    visible: boolean;
    verticalPosition: number;
    type?: string | undefined;
    className?: any;
    style?: any;
    icon?: (Record<string, any> | (() => any)) | undefined;
    iconColor?: string | undefined;
    onOpen: (key: Key) => void;
    onClose: (result: boolean) => void;
    onEnter: () => void;
    onLeave: () => void;
} | undefined;
declare function clear(): void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        item: (item: any) => any;
    }> & {
        item: (item: any) => any;
    };
    refs: {};
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    transitionName: {
        type: StringConstructor;
        default: null;
    };
    innerClass: {
        type: import('vue').PropType<import('@vexip-ui/config').ClassType>;
        default: null;
    };
    placement: {
        default: PopupPlacement;
        validator: (value: PopupPlacement) => boolean;
    };
    startOffset: {
        type: NumberConstructor;
        default: number;
    };
    itemGap: {
        type: NumberConstructor;
        default: number;
    };
}>, {
    items: import('vue').Ref<{
        [x: string]: unknown;
        key: Key;
        content: string;
        closable: boolean;
        height: number;
        visible: boolean;
        verticalPosition: number;
        type?: string | undefined;
        className?: any;
        style?: any;
        icon?: (Record<string, any> | (() => any)) | undefined;
        iconColor?: string | undefined;
        onOpen: (key: Key) => void;
        onClose: (result: boolean) => void;
        onEnter: () => void;
        onLeave: () => void;
    }[], PopupItemState[] | {
        [x: string]: unknown;
        key: Key;
        content: string;
        closable: boolean;
        height: number;
        visible: boolean;
        verticalPosition: number;
        type?: string | undefined;
        className?: any;
        style?: any;
        icon?: (Record<string, any> | (() => any)) | undefined;
        iconColor?: string | undefined;
        onOpen: (key: Key) => void;
        onClose: (result: boolean) => void;
        onEnter: () => void;
        onLeave: () => void;
    }[]>;
    wrapper: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
    add: typeof add;
    remove: typeof remove;
    has: typeof has;
    find: typeof find;
    clear: typeof clear;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    transitionName: {
        type: StringConstructor;
        default: null;
    };
    innerClass: {
        type: import('vue').PropType<import('@vexip-ui/config').ClassType>;
        default: null;
    };
    placement: {
        default: PopupPlacement;
        validator: (value: PopupPlacement) => boolean;
    };
    startOffset: {
        type: NumberConstructor;
        default: number;
    };
    itemGap: {
        type: NumberConstructor;
        default: number;
    };
}>> & Readonly<{}>, {
    transitionName: string;
    placement: "top-right" | "top-center" | "top-left" | "bottom-right" | "bottom-center" | "bottom-left";
    innerClass: import('@vexip-ui/config').ClassType;
    startOffset: number;
    itemGap: number;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
