import './style';
import { TdDropdownMenuProps, TdDropdownItemProps } from './type';
export * from './type';
export type DropdownMenuProps = TdDropdownMenuProps;
export type DropdownItemProps = TdDropdownItemProps;
export declare const DropdownMenu: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        closeOnClickOverlay: {
            type: BooleanConstructor;
            default: boolean;
        };
        direction: {
            type: import("vue").PropType<TdDropdownMenuProps['direction']>;
            default: TdDropdownMenuProps['direction'];
            validator(val: TdDropdownMenuProps['direction']): boolean;
        };
        duration: {
            type: import("vue").PropType<TdDropdownMenuProps['duration']>;
            default: TdDropdownMenuProps['duration'];
        };
        showOverlay: {
            type: BooleanConstructor;
            default: boolean;
        };
        zIndex: {
            type: NumberConstructor;
            default: number;
        };
        onMenuOpened: FunctionConstructor;
        onMenuClosed: FunctionConstructor;
    }>> & Readonly<{
        onMenuClosed?: (...args: any[]) => any;
        onMenuOpened?: (...args: any[]) => any;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("menuClosed" | "menuOpened")[], import("vue").PublicProps, {
        closeOnClickOverlay: boolean;
        direction: "down" | "up";
        duration: string | number;
        showOverlay: boolean;
        zIndex: number;
    }, true, {}, {}, {
        CaretDownSmallIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
            size: {
                type: StringConstructor;
            };
            onClick: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
            };
            fillColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
            };
            strokeColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
            };
            strokeWidth: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
            };
        }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
            size: {
                type: StringConstructor;
            };
            onClick: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
            };
            fillColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
            };
            strokeColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
            };
            strokeWidth: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
            };
        }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
        CaretUpSmallIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
            size: {
                type: StringConstructor;
            };
            onClick: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
            };
            fillColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
            };
            strokeColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
            };
            strokeWidth: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
            };
        }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
            size: {
                type: StringConstructor;
            };
            onClick: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
            };
            fillColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
            };
            strokeColor: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
            };
            strokeWidth: {
                type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
            };
        }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    } & import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        closeOnClickOverlay: {
            type: BooleanConstructor;
            default: boolean;
        };
        direction: {
            type: import("vue").PropType<TdDropdownMenuProps['direction']>;
            default: TdDropdownMenuProps['direction'];
            validator(val: TdDropdownMenuProps['direction']): boolean;
        };
        duration: {
            type: import("vue").PropType<TdDropdownMenuProps['duration']>;
            default: TdDropdownMenuProps['duration'];
        };
        showOverlay: {
            type: BooleanConstructor;
            default: boolean;
        };
        zIndex: {
            type: NumberConstructor;
            default: number;
        };
        onMenuOpened: FunctionConstructor;
        onMenuClosed: FunctionConstructor;
    }>> & Readonly<{
        onMenuClosed?: (...args: any[]) => any;
        onMenuOpened?: (...args: any[]) => any;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
        closeOnClickOverlay: boolean;
        direction: "down" | "up";
        duration: string | number;
        showOverlay: boolean;
        zIndex: number;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    closeOnClickOverlay: {
        type: BooleanConstructor;
        default: boolean;
    };
    direction: {
        type: import("vue").PropType<TdDropdownMenuProps['direction']>;
        default: TdDropdownMenuProps['direction'];
        validator(val: TdDropdownMenuProps['direction']): boolean;
    };
    duration: {
        type: import("vue").PropType<TdDropdownMenuProps['duration']>;
        default: TdDropdownMenuProps['duration'];
    };
    showOverlay: {
        type: BooleanConstructor;
        default: boolean;
    };
    zIndex: {
        type: NumberConstructor;
        default: number;
    };
    onMenuOpened: FunctionConstructor;
    onMenuClosed: FunctionConstructor;
}>> & Readonly<{
    onMenuClosed?: (...args: any[]) => any;
    onMenuOpened?: (...args: any[]) => any;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("menuClosed" | "menuOpened")[], "menuClosed" | "menuOpened", {
    closeOnClickOverlay: boolean;
    direction: "down" | "up";
    duration: string | number;
    showOverlay: boolean;
    zIndex: number;
}, {}, string, {}, {
    CaretDownSmallIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        size: {
            type: StringConstructor;
        };
        onClick: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
        };
        fillColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
        };
        strokeColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
        };
        strokeWidth: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
        };
    }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        size: {
            type: StringConstructor;
        };
        onClick: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
        };
        fillColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
        };
        strokeColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
        };
        strokeWidth: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
        };
    }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    CaretUpSmallIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        size: {
            type: StringConstructor;
        };
        onClick: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
        };
        fillColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
        };
        strokeColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
        };
        strokeWidth: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
        };
    }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        size: {
            type: StringConstructor;
        };
        onClick: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["onClick"]>;
        };
        fillColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["fillColor"]>;
        };
        strokeColor: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeColor"]>;
        };
        strokeWidth: {
            type: import("vue").PropType<import("tdesign-icons-vue-next/lib/utils/types").IconProps["strokeWidth"]>;
        };
    }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
} & import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin;
export declare const DropdownItem: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        disabled: BooleanConstructor;
        footer: {
            type: import("vue").PropType<TdDropdownItemProps['footer']>;
        };
        icon: {
            type: import("vue").PropType<TdDropdownItemProps['icon']>;
            default: TdDropdownItemProps['icon'];
        };
        keys: {
            type: import("vue").PropType<TdDropdownItemProps['keys']>;
        };
        label: {
            type: StringConstructor;
            default: string;
        };
        multiple: BooleanConstructor;
        options: {
            type: import("vue").PropType<TdDropdownItemProps['options']>;
            default: () => TdDropdownItemProps['options'];
        };
        optionsColumns: {
            type: import("vue").PropType<TdDropdownItemProps['optionsColumns']>;
            default: TdDropdownItemProps['optionsColumns'];
        };
        placement: {
            type: import("vue").PropType<TdDropdownItemProps['placement']>;
            default: TdDropdownItemProps['placement'];
            validator(val: TdDropdownItemProps['placement']): boolean;
        };
        value: {
            type: import("vue").PropType<TdDropdownItemProps['value']>;
            default: TdDropdownItemProps['value'];
        };
        modelValue: {
            type: import("vue").PropType<TdDropdownItemProps['value']>;
            default: TdDropdownItemProps['value'];
        };
        defaultValue: {
            type: import("vue").PropType<TdDropdownItemProps['defaultValue']>;
            default: TdDropdownItemProps['defaultValue'];
        };
        onChange: import("vue").PropType<TdDropdownItemProps['onChange']>;
        onClose: import("vue").PropType<TdDropdownItemProps['onClose']>;
        onClosed: import("vue").PropType<TdDropdownItemProps['onClosed']>;
        onConfirm: import("vue").PropType<TdDropdownItemProps['onConfirm']>;
        onOpen: import("vue").PropType<TdDropdownItemProps['onOpen']>;
        onOpened: import("vue").PropType<TdDropdownItemProps['onOpened']>;
        onReset: import("vue").PropType<TdDropdownItemProps['onReset']>;
    }>> & Readonly<{
        onChange?: (...args: any[]) => any;
        onClose?: (...args: any[]) => any;
        onClosed?: (...args: any[]) => any;
        onOpen?: (...args: any[]) => any;
        onOpened?: (...args: any[]) => any;
        "onUpdate:modelValue"?: (...args: any[]) => any;
        "onUpdate:value"?: (...args: any[]) => any;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "close" | "closed" | "open" | "opened" | "update:modelValue" | "update:value")[], import("vue").PublicProps, {
        disabled: boolean;
        icon: ((h: typeof import('vue').h) => import("@/common").TNodeReturnValue)[] | ((h: typeof import('vue').h) => import("@/common").TNodeReturnValue);
        label: string;
        multiple: boolean;
        options: import("@/components").DropdownOption[];
        optionsColumns: string | number;
        placement: "left" | "right";
        value: import("@/components").DropdownValue;
        modelValue: import("@/components").DropdownValue;
        defaultValue: import("@/components").DropdownValue;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        disabled: BooleanConstructor;
        footer: {
            type: import("vue").PropType<TdDropdownItemProps['footer']>;
        };
        icon: {
            type: import("vue").PropType<TdDropdownItemProps['icon']>;
            default: TdDropdownItemProps['icon'];
        };
        keys: {
            type: import("vue").PropType<TdDropdownItemProps['keys']>;
        };
        label: {
            type: StringConstructor;
            default: string;
        };
        multiple: BooleanConstructor;
        options: {
            type: import("vue").PropType<TdDropdownItemProps['options']>;
            default: () => TdDropdownItemProps['options'];
        };
        optionsColumns: {
            type: import("vue").PropType<TdDropdownItemProps['optionsColumns']>;
            default: TdDropdownItemProps['optionsColumns'];
        };
        placement: {
            type: import("vue").PropType<TdDropdownItemProps['placement']>;
            default: TdDropdownItemProps['placement'];
            validator(val: TdDropdownItemProps['placement']): boolean;
        };
        value: {
            type: import("vue").PropType<TdDropdownItemProps['value']>;
            default: TdDropdownItemProps['value'];
        };
        modelValue: {
            type: import("vue").PropType<TdDropdownItemProps['value']>;
            default: TdDropdownItemProps['value'];
        };
        defaultValue: {
            type: import("vue").PropType<TdDropdownItemProps['defaultValue']>;
            default: TdDropdownItemProps['defaultValue'];
        };
        onChange: import("vue").PropType<TdDropdownItemProps['onChange']>;
        onClose: import("vue").PropType<TdDropdownItemProps['onClose']>;
        onClosed: import("vue").PropType<TdDropdownItemProps['onClosed']>;
        onConfirm: import("vue").PropType<TdDropdownItemProps['onConfirm']>;
        onOpen: import("vue").PropType<TdDropdownItemProps['onOpen']>;
        onOpened: import("vue").PropType<TdDropdownItemProps['onOpened']>;
        onReset: import("vue").PropType<TdDropdownItemProps['onReset']>;
    }>> & Readonly<{
        onChange?: (...args: any[]) => any;
        onClose?: (...args: any[]) => any;
        onClosed?: (...args: any[]) => any;
        onOpen?: (...args: any[]) => any;
        onOpened?: (...args: any[]) => any;
        "onUpdate:modelValue"?: (...args: any[]) => any;
        "onUpdate:value"?: (...args: any[]) => any;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
        disabled: boolean;
        icon: ((h: typeof import('vue').h) => import("@/common").TNodeReturnValue)[] | ((h: typeof import('vue').h) => import("@/common").TNodeReturnValue);
        label: string;
        multiple: boolean;
        options: import("@/components").DropdownOption[];
        optionsColumns: string | number;
        placement: "left" | "right";
        value: import("@/components").DropdownValue;
        modelValue: import("@/components").DropdownValue;
        defaultValue: import("@/components").DropdownValue;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    disabled: BooleanConstructor;
    footer: {
        type: import("vue").PropType<TdDropdownItemProps['footer']>;
    };
    icon: {
        type: import("vue").PropType<TdDropdownItemProps['icon']>;
        default: TdDropdownItemProps['icon'];
    };
    keys: {
        type: import("vue").PropType<TdDropdownItemProps['keys']>;
    };
    label: {
        type: StringConstructor;
        default: string;
    };
    multiple: BooleanConstructor;
    options: {
        type: import("vue").PropType<TdDropdownItemProps['options']>;
        default: () => TdDropdownItemProps['options'];
    };
    optionsColumns: {
        type: import("vue").PropType<TdDropdownItemProps['optionsColumns']>;
        default: TdDropdownItemProps['optionsColumns'];
    };
    placement: {
        type: import("vue").PropType<TdDropdownItemProps['placement']>;
        default: TdDropdownItemProps['placement'];
        validator(val: TdDropdownItemProps['placement']): boolean;
    };
    value: {
        type: import("vue").PropType<TdDropdownItemProps['value']>;
        default: TdDropdownItemProps['value'];
    };
    modelValue: {
        type: import("vue").PropType<TdDropdownItemProps['value']>;
        default: TdDropdownItemProps['value'];
    };
    defaultValue: {
        type: import("vue").PropType<TdDropdownItemProps['defaultValue']>;
        default: TdDropdownItemProps['defaultValue'];
    };
    onChange: import("vue").PropType<TdDropdownItemProps['onChange']>;
    onClose: import("vue").PropType<TdDropdownItemProps['onClose']>;
    onClosed: import("vue").PropType<TdDropdownItemProps['onClosed']>;
    onConfirm: import("vue").PropType<TdDropdownItemProps['onConfirm']>;
    onOpen: import("vue").PropType<TdDropdownItemProps['onOpen']>;
    onOpened: import("vue").PropType<TdDropdownItemProps['onOpened']>;
    onReset: import("vue").PropType<TdDropdownItemProps['onReset']>;
}>> & Readonly<{
    onChange?: (...args: any[]) => any;
    onClose?: (...args: any[]) => any;
    onClosed?: (...args: any[]) => any;
    onOpen?: (...args: any[]) => any;
    onOpened?: (...args: any[]) => any;
    "onUpdate:modelValue"?: (...args: any[]) => any;
    "onUpdate:value"?: (...args: any[]) => any;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "close" | "closed" | "open" | "opened" | "update:modelValue" | "update:value")[], "change" | "close" | "closed" | "open" | "opened" | "update:modelValue" | "update:value", {
    disabled: boolean;
    icon: ((h: typeof import('vue').h) => import("@/common").TNodeReturnValue)[] | ((h: typeof import('vue').h) => import("@/common").TNodeReturnValue);
    label: string;
    multiple: boolean;
    options: import("@/components").DropdownOption[];
    optionsColumns: string | number;
    placement: "left" | "right";
    value: import("@/components").DropdownValue;
    modelValue: import("@/components").DropdownValue;
    defaultValue: import("@/components").DropdownValue;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin;
export default DropdownMenu;
