import type { TdDropdownItemProps, TdDropdownProps } from './type';
import './style';
export * from './type';
export declare type DropdownProps = TdDropdownProps;
export declare type DropdownItemProps = TdDropdownItemProps;
export declare const Dropdown: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    handleMenuClick: (data: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    isPopupVisible: import("@vue/composition-api").Ref<boolean>;
    handleVisibleChange: (visible: boolean, context: import("..").PopupVisibleChangeContext) => void;
}> & import("@vue/composition-api").Data, {}, {}, {
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}, import("@vue/composition-api").ExtractPropTypes<{
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    handleMenuClick: (data: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    isPopupVisible: import("@vue/composition-api").Ref<boolean>;
    handleVisibleChange: (visible: boolean, context: import("..").PopupVisibleChangeContext) => void;
}>, import("@vue/composition-api").Data, {}, {}, {}, {}, {}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
}, true>) & import("vue").PluginObject<import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    handleMenuClick: (data: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    isPopupVisible: import("@vue/composition-api").Ref<boolean>;
    handleVisibleChange: (visible: boolean, context: import("..").PopupVisibleChangeContext) => void;
}> & import("@vue/composition-api").Data, {}, {}, {
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}, import("@vue/composition-api").ExtractPropTypes<{
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    handleMenuClick: (data: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    isPopupVisible: import("@vue/composition-api").Ref<boolean>;
    handleVisibleChange: (visible: boolean, context: import("..").PopupVisibleChangeContext) => void;
}>, import("@vue/composition-api").Data, {}, {}, {}, {}, {}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
}, true>)>;
export declare const DropdownItem: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    itemRef: import("@vue/composition-api").Ref<HTMLElement>;
    dropdownItemClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (e: MouseEvent) => void;
}> & import("@vue/composition-api").Data, {}, {}, {
    maxColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    minColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    isSubmenu: BooleanConstructor;
    active: BooleanConstructor;
    content: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
        default: string;
    };
    disabled: BooleanConstructor;
    divider: BooleanConstructor;
    prefixIcon: {
        type: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    };
    theme: {
        type: import("vue").PropType<import("./type").DropdownItemTheme>;
        default: import("./type").DropdownItemTheme;
        validator(val: import("./type").DropdownItemTheme): boolean;
    };
    value: {
        type: import("vue").PropType<string | number | {
            [key: string]: any;
        }>;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}, import("@vue/composition-api").ExtractPropTypes<{
    maxColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    minColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    isSubmenu: BooleanConstructor;
    active: BooleanConstructor;
    content: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
        default: string;
    };
    disabled: BooleanConstructor;
    divider: BooleanConstructor;
    prefixIcon: {
        type: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    };
    theme: {
        type: import("vue").PropType<import("./type").DropdownItemTheme>;
        default: import("./type").DropdownItemTheme;
        validator(val: import("./type").DropdownItemTheme): boolean;
    };
    value: {
        type: import("vue").PropType<string | number | {
            [key: string]: any;
        }>;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    active: boolean;
    content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    disabled: boolean;
    theme: import("./type").DropdownItemTheme;
    divider: boolean;
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    isSubmenu: boolean;
} & {
    value?: unknown;
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    prefixIcon?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    itemRef: import("@vue/composition-api").Ref<HTMLElement>;
    dropdownItemClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (e: MouseEvent) => void;
}>, import("@vue/composition-api").Data, {}, {}, {}, {}, {}, {
    active: boolean;
    content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    disabled: boolean;
    theme: import("./type").DropdownItemTheme;
    divider: boolean;
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    isSubmenu: boolean;
} & {
    value?: unknown;
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    prefixIcon?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
}, {
    active: boolean;
    content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    disabled: boolean;
    theme: import("./type").DropdownItemTheme;
    divider: boolean;
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    isSubmenu: boolean;
}, true>) & import("vue").PluginObject<import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    itemRef: import("@vue/composition-api").Ref<HTMLElement>;
    dropdownItemClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (e: MouseEvent) => void;
}> & import("@vue/composition-api").Data, {}, {}, {
    maxColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    minColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    isSubmenu: BooleanConstructor;
    active: BooleanConstructor;
    content: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
        default: string;
    };
    disabled: BooleanConstructor;
    divider: BooleanConstructor;
    prefixIcon: {
        type: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    };
    theme: {
        type: import("vue").PropType<import("./type").DropdownItemTheme>;
        default: import("./type").DropdownItemTheme;
        validator(val: import("./type").DropdownItemTheme): boolean;
    };
    value: {
        type: import("vue").PropType<string | number | {
            [key: string]: any;
        }>;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}, import("@vue/composition-api").ExtractPropTypes<{
    maxColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    minColumnWidth: {
        type: import("@vue/composition-api").PropType<string | number>;
        default: number;
    };
    isSubmenu: BooleanConstructor;
    active: BooleanConstructor;
    content: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
        default: string;
    };
    disabled: BooleanConstructor;
    divider: BooleanConstructor;
    prefixIcon: {
        type: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    };
    theme: {
        type: import("vue").PropType<import("./type").DropdownItemTheme>;
        default: import("./type").DropdownItemTheme;
        validator(val: import("./type").DropdownItemTheme): boolean;
    };
    value: {
        type: import("vue").PropType<string | number | {
            [key: string]: any;
        }>;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    active: boolean;
    content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    disabled: boolean;
    theme: import("./type").DropdownItemTheme;
    divider: boolean;
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    isSubmenu: boolean;
} & {
    value?: unknown;
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    prefixIcon?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    itemRef: import("@vue/composition-api").Ref<HTMLElement>;
    dropdownItemClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (e: MouseEvent) => void;
}>, import("@vue/composition-api").Data, {}, {}, {}, {}, {}, {
    active: boolean;
    content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    disabled: boolean;
    theme: import("./type").DropdownItemTheme;
    divider: boolean;
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    isSubmenu: boolean;
} & {
    value?: unknown;
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    prefixIcon?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
}, {
    active: boolean;
    content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    disabled: boolean;
    theme: import("./type").DropdownItemTheme;
    divider: boolean;
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    isSubmenu: boolean;
}, true>)>;
export declare const DropdownMenu: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    dropdownMenuClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (optionItem: {
        disabled: boolean;
        children: unknown;
    }, options: {
        data: import("./type").DropdownOption;
        context: {
            e: MouseEvent;
        };
    }) => void;
    menuRef: import("@vue/composition-api").Ref<HTMLElement>;
    isOverMaxHeight: import("@vue/composition-api").Ref<boolean>;
    handleScroll: (e: MouseEvent, deep: number) => void;
    scrollTopMap: {};
}> & import("@vue/composition-api").Data, {
    renderOptionContent(content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)): import("vue/types/vnode").ScopedSlotReturnValue;
    renderOptions(data: import("./type").DropdownOption[], deep: number): unknown[];
}, {}, {
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}, import("@vue/composition-api").ExtractPropTypes<{
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    dropdownMenuClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (optionItem: {
        disabled: boolean;
        children: unknown;
    }, options: {
        data: import("./type").DropdownOption;
        context: {
            e: MouseEvent;
        };
    }) => void;
    menuRef: import("@vue/composition-api").Ref<HTMLElement>;
    isOverMaxHeight: import("@vue/composition-api").Ref<boolean>;
    handleScroll: (e: MouseEvent, deep: number) => void;
    scrollTopMap: {};
}>, import("@vue/composition-api").Data, {}, {
    renderOptionContent(content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)): import("vue/types/vnode").ScopedSlotReturnValue;
    renderOptions(data: import("./type").DropdownOption[], deep: number): unknown[];
}, {}, {}, {}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
}, true>) & import("vue").PluginObject<import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    dropdownMenuClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (optionItem: {
        disabled: boolean;
        children: unknown;
    }, options: {
        data: import("./type").DropdownOption;
        context: {
            e: MouseEvent;
        };
    }) => void;
    menuRef: import("@vue/composition-api").Ref<HTMLElement>;
    isOverMaxHeight: import("@vue/composition-api").Ref<boolean>;
    handleScroll: (e: MouseEvent, deep: number) => void;
    scrollTopMap: {};
}> & import("@vue/composition-api").Data, {
    renderOptionContent(content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)): import("vue/types/vnode").ScopedSlotReturnValue;
    renderOptions(data: import("./type").DropdownOption[], deep: number): unknown[];
}, {}, {
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}, import("@vue/composition-api").ExtractPropTypes<{
    direction: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    disabled: BooleanConstructor;
    hideAfterItemClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: number;
    };
    minColumnWidth: {
        type: import("vue").PropType<string | number>;
        default: number;
    };
    options: {
        type: import("vue").PropType<import("./type").DropdownOption[]>;
        default: () => import("./type").DropdownOption[];
    };
    placement: {
        type: import("vue").PropType<"left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom">;
        default: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
        validator(val: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom"): boolean;
    };
    popupProps: {
        type: import("vue").PropType<import("..").TdPopupProps>;
    };
    trigger: {
        type: import("vue").PropType<"click" | "focus" | "hover" | "context-menu">;
        default: "click" | "focus" | "hover" | "context-menu";
        validator(val: "click" | "focus" | "hover" | "context-menu"): boolean;
    };
    onClick: import("vue").PropType<(dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    dropdownClass: import("@vue/composition-api").ComputedRef<string>;
    dropdownMenuClass: import("@vue/composition-api").ComputedRef<string>;
    handleItemClick: (optionItem: {
        disabled: boolean;
        children: unknown;
    }, options: {
        data: import("./type").DropdownOption;
        context: {
            e: MouseEvent;
        };
    }) => void;
    menuRef: import("@vue/composition-api").Ref<HTMLElement>;
    isOverMaxHeight: import("@vue/composition-api").Ref<boolean>;
    handleScroll: (e: MouseEvent, deep: number) => void;
    scrollTopMap: {};
}>, import("@vue/composition-api").Data, {}, {
    renderOptionContent(content: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)): import("vue/types/vnode").ScopedSlotReturnValue;
    renderOptions(data: import("./type").DropdownOption[], deep: number): unknown[];
}, {}, {}, {}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
} & {
    onClick?: (dropdownItem: import("./type").DropdownOption, context: {
        e: MouseEvent;
    }) => void;
    popupProps?: unknown;
}, {
    direction: "left" | "right";
    maxHeight: number;
    disabled: boolean;
    options: import("./type").DropdownOption[];
    placement: "left" | "top" | "bottom" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "left-top" | "left-bottom" | "right-top" | "right-bottom";
    trigger: "click" | "focus" | "hover" | "context-menu";
    maxColumnWidth: string | number;
    minColumnWidth: string | number;
    hideAfterItemClick: boolean;
}, true>)>;
export default Dropdown;
