import type { App } from 'vue';
import type { ArcoOptions } from '../_utils/types';
import _Dropdown from './dropdown';
import _DropdownOption from './dropdown-option';
import _DropdownGroup from './dropdown-group';
import _DropdownSubmenu from './dropdown-submenu';
import _DropdownButton from './dropdown-button';
declare const Dropdown: {
    new (...args: any[]): {
        $: import("vue").ComponentInternalInstance;
        $data: {};
        $props: Partial<{
            popupVisible: boolean;
            defaultPopupVisible: boolean;
            trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
            position: import("./interface").DropdownPosition;
            popupMaxHeight: number | boolean;
            hideOnSelect: boolean;
        }> & Omit<Readonly<{
            popupVisible?: unknown;
            defaultPopupVisible?: unknown;
            trigger?: unknown;
            position?: unknown;
            popupContainer?: unknown;
            popupMaxHeight?: unknown;
            hideOnSelect?: unknown;
        } & {
            defaultPopupVisible: boolean;
            trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
            position: import("./interface").DropdownPosition;
            popupMaxHeight: number | boolean;
            hideOnSelect: boolean;
        } & {
            popupVisible?: boolean | undefined;
            popupContainer?: string | HTMLElement | undefined;
        }> & {
            "onUpdate:popupVisible"?: ((visible: boolean) => any) | undefined;
            onPopupVisibleChange?: ((visible: boolean) => any) | undefined;
            onSelect?: ((value: string | number | Record<string, any> | undefined, ev: Event) => any) | undefined;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "popupVisible" | "defaultPopupVisible" | "trigger" | "position" | "popupMaxHeight" | "hideOnSelect">;
        $attrs: {
            [x: string]: unknown;
        };
        $refs: {
            [x: string]: unknown;
        };
        $slots: Readonly<{
            [name: string]: import("vue").Slot | undefined;
        }>;
        $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
        $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
        $emit: ((event: "update:popupVisible", visible: boolean) => void) & ((event: "popupVisibleChange", visible: boolean) => void) & ((event: "select", value: string | number | Record<string, any> | undefined, ev: Event) => void);
        $el: any;
        $options: import("vue").ComponentOptionsBase<Readonly<{
            popupVisible?: unknown;
            defaultPopupVisible?: unknown;
            trigger?: unknown;
            position?: unknown;
            popupContainer?: unknown;
            popupMaxHeight?: unknown;
            hideOnSelect?: unknown;
        } & {
            defaultPopupVisible: boolean;
            trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
            position: import("./interface").DropdownPosition;
            popupMaxHeight: number | boolean;
            hideOnSelect: boolean;
        } & {
            popupVisible?: boolean | undefined;
            popupContainer?: string | HTMLElement | undefined;
        }> & {
            "onUpdate:popupVisible"?: ((visible: boolean) => any) | undefined;
            onPopupVisibleChange?: ((visible: boolean) => any) | undefined;
            onSelect?: ((value: string | number | Record<string, any> | undefined, ev: Event) => any) | undefined;
        }, {
            prefixCls: string;
            computedPopupVisible: import("vue").ComputedRef<boolean>;
            handlePopupVisibleChange: (visible: boolean) => void;
        }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
            'update:popupVisible': (visible: boolean) => true;
            popupVisibleChange: (visible: boolean) => true;
            select: (value: string | number | Record<string, any> | undefined, ev: Event) => true;
        }, string, {
            popupVisible: boolean;
            defaultPopupVisible: boolean;
            trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
            position: import("./interface").DropdownPosition;
            popupMaxHeight: number | boolean;
            hideOnSelect: boolean;
        }> & {
            beforeCreate?: ((() => void) | (() => void)[]) | undefined;
            created?: ((() => void) | (() => void)[]) | undefined;
            beforeMount?: ((() => void) | (() => void)[]) | undefined;
            mounted?: ((() => void) | (() => void)[]) | undefined;
            beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
            updated?: ((() => void) | (() => void)[]) | undefined;
            activated?: ((() => void) | (() => void)[]) | undefined;
            deactivated?: ((() => void) | (() => void)[]) | undefined;
            beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
            beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
            destroyed?: ((() => void) | (() => void)[]) | undefined;
            unmounted?: ((() => void) | (() => void)[]) | undefined;
            renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
            renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
            errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void)[]) | undefined;
        };
        $forceUpdate: () => void;
        $nextTick: typeof import("vue").nextTick;
        $watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
    } & Readonly<{
        popupVisible?: unknown;
        defaultPopupVisible?: unknown;
        trigger?: unknown;
        position?: unknown;
        popupContainer?: unknown;
        popupMaxHeight?: unknown;
        hideOnSelect?: unknown;
    } & {
        defaultPopupVisible: boolean;
        trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
        position: import("./interface").DropdownPosition;
        popupMaxHeight: number | boolean;
        hideOnSelect: boolean;
    } & {
        popupVisible?: boolean | undefined;
        popupContainer?: string | HTMLElement | undefined;
    }> & {
        "onUpdate:popupVisible"?: ((visible: boolean) => any) | undefined;
        onPopupVisibleChange?: ((visible: boolean) => any) | undefined;
        onSelect?: ((value: string | number | Record<string, any> | undefined, ev: Event) => any) | undefined;
    } & import("vue").ShallowUnwrapRef<{
        prefixCls: string;
        computedPopupVisible: import("vue").ComputedRef<boolean>;
        handlePopupVisibleChange: (visible: boolean) => void;
    }> & {} & {} & import("vue").ComponentCustomProperties;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<{
    popupVisible?: unknown;
    defaultPopupVisible?: unknown;
    trigger?: unknown;
    position?: unknown;
    popupContainer?: unknown;
    popupMaxHeight?: unknown;
    hideOnSelect?: unknown;
} & {
    defaultPopupVisible: boolean;
    trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
    position: import("./interface").DropdownPosition;
    popupMaxHeight: number | boolean;
    hideOnSelect: boolean;
} & {
    popupVisible?: boolean | undefined;
    popupContainer?: string | HTMLElement | undefined;
}> & {
    "onUpdate:popupVisible"?: ((visible: boolean) => any) | undefined;
    onPopupVisibleChange?: ((visible: boolean) => any) | undefined;
    onSelect?: ((value: string | number | Record<string, any> | undefined, ev: Event) => any) | undefined;
}, {
    prefixCls: string;
    computedPopupVisible: import("vue").ComputedRef<boolean>;
    handlePopupVisibleChange: (visible: boolean) => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    'update:popupVisible': (visible: boolean) => true;
    popupVisibleChange: (visible: boolean) => true;
    select: (value: string | number | Record<string, any> | undefined, ev: Event) => true;
}, string, {
    popupVisible: boolean;
    defaultPopupVisible: boolean;
    trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
    position: import("./interface").DropdownPosition;
    popupMaxHeight: number | boolean;
    hideOnSelect: boolean;
}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    Option: import("vue").DefineComponent<{
        value: {
            type: (StringConstructor | ObjectConstructor | NumberConstructor)[];
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        active: BooleanConstructor;
        uninjectContext: BooleanConstructor;
    }, {
        prefixCls: string;
        cls: import("vue").ComputedRef<(string | {
            [x: string]: boolean;
        })[]>;
        liRef: import("vue").Ref<HTMLElement | undefined>;
        handleClick: (ev: MouseEvent) => void;
    }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        click: (ev: MouseEvent) => true;
    }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
        value?: unknown;
        disabled?: unknown;
        active?: unknown;
        uninjectContext?: unknown;
    } & {
        disabled: boolean;
        active: boolean;
        uninjectContext: boolean;
    } & {
        value?: string | number | Record<string, any> | undefined;
    }> & {
        onClick?: ((ev: MouseEvent) => any) | undefined;
    }, {
        disabled: boolean;
        active: boolean;
        uninjectContext: boolean;
    }>;
    Group: import("vue").DefineComponent<{
        title: StringConstructor;
    }, {
        prefixCls: string;
    }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
        title?: unknown;
    } & {} & {
        title?: string | undefined;
    }>, {}>;
    Submenu: import("vue").DefineComponent<{
        value: {
            type: (StringConstructor | NumberConstructor)[];
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        trigger: {
            type: import("vue").PropType<"hover" | "click" | ("hover" | "click")[]>;
            default: string;
        };
        position: {
            type: import("vue").PropType<"lt" | "rt">;
            default: string;
        };
        popupVisible: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultPopupVisible: {
            type: BooleanConstructor;
            default: boolean;
        };
        optionProps: {
            type: ObjectConstructor;
        };
    }, {
        prefixCls: string;
        computedPopupVisible: import("vue").ComputedRef<boolean>;
        handlePopupVisibleChange: (visible: boolean) => void;
    }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        'update:popupVisible': (visible: boolean) => true;
        popupVisibleChange: (visible: boolean) => true;
    }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
        value?: unknown;
        disabled?: unknown;
        trigger?: unknown;
        position?: unknown;
        popupVisible?: unknown;
        defaultPopupVisible?: unknown;
        optionProps?: unknown;
    } & {
        disabled: boolean;
        defaultPopupVisible: boolean;
        trigger: "hover" | "click" | ("hover" | "click")[];
        position: "lt" | "rt";
    } & {
        popupVisible?: boolean | undefined;
        value?: string | number | undefined;
        optionProps?: Record<string, any> | undefined;
    }> & {
        "onUpdate:popupVisible"?: ((visible: boolean) => any) | undefined;
        onPopupVisibleChange?: ((visible: boolean) => any) | undefined;
    }, {
        disabled: boolean;
        popupVisible: boolean;
        defaultPopupVisible: boolean;
        trigger: "hover" | "click" | ("hover" | "click")[];
        position: "lt" | "rt";
    }>;
    Button: import("vue").DefineComponent<{
        popupVisible: {
            type: BooleanConstructor;
            default: undefined;
        };
        defaultPopupVisible: {
            type: BooleanConstructor;
            default: boolean;
        };
        trigger: {
            type: import("vue").PropType<"hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[]>;
            default: string;
        };
        position: {
            type: import("vue").PropType<"top" | "tl" | "tr" | "bottom" | "bl" | "br">;
            default: string;
        };
        popupContainer: {
            type: import("vue").PropType<string | HTMLElement>;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        type: {
            type: StringConstructor;
        };
        size: {
            type: StringConstructor;
        };
        buttonProps: {
            type: import("vue").PropType<import("..").ButtonProps>;
        };
        hideOnSelect: {
            type: BooleanConstructor;
            default: boolean;
        };
    }, {
        prefixCls: string;
        computedPopupVisible: import("vue").ComputedRef<boolean>;
        handleClick: (ev: MouseEvent) => void;
        handleSelect: (value: string | number | Record<string, unknown> | undefined, ev: Event) => void;
        handlePopupVisibleChange: (visible: boolean) => void;
    }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        'update:popupVisible': (visible: boolean) => true;
        popupVisibleChange: (visible: boolean) => true;
        click: (ev: MouseEvent) => true;
        select: (value: string | number | Record<string, any> | undefined, ev: Event) => true;
    }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
        popupVisible?: unknown;
        defaultPopupVisible?: unknown;
        trigger?: unknown;
        position?: unknown;
        popupContainer?: unknown;
        disabled?: unknown;
        type?: unknown;
        size?: unknown;
        buttonProps?: unknown;
        hideOnSelect?: unknown;
    } & {
        disabled: boolean;
        defaultPopupVisible: boolean;
        trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
        position: "top" | "tl" | "tr" | "bottom" | "bl" | "br";
        hideOnSelect: boolean;
    } & {
        size?: string | undefined;
        popupVisible?: boolean | undefined;
        popupContainer?: string | HTMLElement | undefined;
        type?: string | undefined;
        buttonProps?: import("..").ButtonProps | undefined;
    }> & {
        "onUpdate:popupVisible"?: ((visible: boolean) => any) | undefined;
        onPopupVisibleChange?: ((visible: boolean) => any) | undefined;
        onClick?: ((ev: MouseEvent) => any) | undefined;
        onSelect?: ((value: string | number | Record<string, any> | undefined, ev: Event) => any) | undefined;
    }, {
        disabled: boolean;
        popupVisible: boolean;
        defaultPopupVisible: boolean;
        trigger: "hover" | "click" | "focus" | "contextMenu" | ("hover" | "click" | "focus" | "contextMenu")[];
        position: "top" | "tl" | "tr" | "bottom" | "bl" | "br";
        hideOnSelect: boolean;
    }>;
    install: (app: App, options?: ArcoOptions | undefined) => void;
};
export declare type DropdownInstance = InstanceType<typeof _Dropdown>;
export declare type DropdownOptionInstance = InstanceType<typeof _DropdownOption>;
export declare type DropdownGroupInstance = InstanceType<typeof _DropdownGroup>;
export declare type DropdownSubmenuInstance = InstanceType<typeof _DropdownSubmenu>;
export declare type DropdownButtonInstance = InstanceType<typeof _DropdownButton>;
export type { DropDownProps, DropdownOption, DOption, DGroup, DSubmenu, } from './interface';
export { _DropdownOption as Doption, _DropdownGroup as Dgroup, _DropdownSubmenu as Dsubmenu, _DropdownButton as DropdownButton, };
export default Dropdown;
