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<"down" | "up">;
            default: "down" | "up";
            validator(val: "down" | "up"): boolean;
        };
        duration: {
            type: import("vue").PropType<string | number>;
            default: string | number;
        };
        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<(context: {
                    e: MouseEvent;
                }) => void>;
            };
            fillColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeWidth: {
                type: import("vue").PropType<number>;
            };
        }>, () => 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<(context: {
                    e: MouseEvent;
                }) => void>;
            };
            fillColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeWidth: {
                type: import("vue").PropType<number>;
            };
        }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
        CaretUpSmallIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
            size: {
                type: StringConstructor;
            };
            onClick: {
                type: import("vue").PropType<(context: {
                    e: MouseEvent;
                }) => void>;
            };
            fillColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeWidth: {
                type: import("vue").PropType<number>;
            };
        }>, () => 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<(context: {
                    e: MouseEvent;
                }) => void>;
            };
            fillColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeColor: {
                type: import("vue").PropType<string | string[]>;
            };
            strokeWidth: {
                type: import("vue").PropType<number>;
            };
        }>> & 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<"down" | "up">;
            default: "down" | "up";
            validator(val: "down" | "up"): boolean;
        };
        duration: {
            type: import("vue").PropType<string | number>;
            default: string | number;
        };
        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<"down" | "up">;
        default: "down" | "up";
        validator(val: "down" | "up"): boolean;
    };
    duration: {
        type: import("vue").PropType<string | number>;
        default: string | number;
    };
    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<(context: {
                e: MouseEvent;
            }) => void>;
        };
        fillColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeWidth: {
            type: import("vue").PropType<number>;
        };
    }>, () => 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<(context: {
                e: MouseEvent;
            }) => void>;
        };
        fillColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeWidth: {
            type: import("vue").PropType<number>;
        };
    }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    CaretUpSmallIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        size: {
            type: StringConstructor;
        };
        onClick: {
            type: import("vue").PropType<(context: {
                e: MouseEvent;
            }) => void>;
        };
        fillColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeWidth: {
            type: import("vue").PropType<number>;
        };
    }>, () => 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<(context: {
                e: MouseEvent;
            }) => void>;
        };
        fillColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeColor: {
            type: import("vue").PropType<string | string[]>;
        };
        strokeWidth: {
            type: import("vue").PropType<number>;
        };
    }>> & 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<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
        };
        icon: {
            type: import("vue").PropType<((h: typeof import("vue").h) => import("@/common").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
            default: ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue);
        };
        keys: {
            type: import("vue").PropType<import("@/common").KeysType>;
        };
        label: {
            type: StringConstructor;
            default: string;
        };
        multiple: BooleanConstructor;
        options: {
            type: import("vue").PropType<import("@/components").DropdownOption[]>;
            default: () => import("@/components").DropdownOption[];
        };
        optionsColumns: {
            type: import("vue").PropType<string | number>;
            default: string | number;
        };
        placement: {
            type: import("vue").PropType<"left" | "right">;
            default: "left" | "right";
            validator(val: "left" | "right"): boolean;
        };
        value: {
            type: import("vue").PropType<import("@/components").DropdownValue>;
            default: import("@/components").DropdownValue;
        };
        modelValue: {
            type: import("vue").PropType<import("@/components").DropdownValue>;
            default: import("@/components").DropdownValue;
        };
        defaultValue: {
            type: import("vue").PropType<import("@/components").DropdownValue>;
            default: import("@/components").DropdownValue;
        };
        onChange: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
        onClose: import("vue").PropType<() => void>;
        onClosed: import("vue").PropType<() => void>;
        onConfirm: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
        onOpen: import("vue").PropType<() => void>;
        onOpened: import("vue").PropType<() => void>;
        onReset: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
    }>> & 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").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue);
        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<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
        };
        icon: {
            type: import("vue").PropType<((h: typeof import("vue").h) => import("@/common").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
            default: ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue);
        };
        keys: {
            type: import("vue").PropType<import("@/common").KeysType>;
        };
        label: {
            type: StringConstructor;
            default: string;
        };
        multiple: BooleanConstructor;
        options: {
            type: import("vue").PropType<import("@/components").DropdownOption[]>;
            default: () => import("@/components").DropdownOption[];
        };
        optionsColumns: {
            type: import("vue").PropType<string | number>;
            default: string | number;
        };
        placement: {
            type: import("vue").PropType<"left" | "right">;
            default: "left" | "right";
            validator(val: "left" | "right"): boolean;
        };
        value: {
            type: import("vue").PropType<import("@/components").DropdownValue>;
            default: import("@/components").DropdownValue;
        };
        modelValue: {
            type: import("vue").PropType<import("@/components").DropdownValue>;
            default: import("@/components").DropdownValue;
        };
        defaultValue: {
            type: import("vue").PropType<import("@/components").DropdownValue>;
            default: import("@/components").DropdownValue;
        };
        onChange: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
        onClose: import("vue").PropType<() => void>;
        onClosed: import("vue").PropType<() => void>;
        onConfirm: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
        onOpen: import("vue").PropType<() => void>;
        onOpened: import("vue").PropType<() => void>;
        onReset: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
    }>> & 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").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue);
        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<(h: typeof import("vue").h) => import("@/common").SlotReturnValue>;
    };
    icon: {
        type: import("vue").PropType<((h: typeof import("vue").h) => import("@/common").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)>;
        default: ((h: typeof import("vue").h) => import("@/common").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue);
    };
    keys: {
        type: import("vue").PropType<import("@/common").KeysType>;
    };
    label: {
        type: StringConstructor;
        default: string;
    };
    multiple: BooleanConstructor;
    options: {
        type: import("vue").PropType<import("@/components").DropdownOption[]>;
        default: () => import("@/components").DropdownOption[];
    };
    optionsColumns: {
        type: import("vue").PropType<string | number>;
        default: string | number;
    };
    placement: {
        type: import("vue").PropType<"left" | "right">;
        default: "left" | "right";
        validator(val: "left" | "right"): boolean;
    };
    value: {
        type: import("vue").PropType<import("@/components").DropdownValue>;
        default: import("@/components").DropdownValue;
    };
    modelValue: {
        type: import("vue").PropType<import("@/components").DropdownValue>;
        default: import("@/components").DropdownValue;
    };
    defaultValue: {
        type: import("vue").PropType<import("@/components").DropdownValue>;
        default: import("@/components").DropdownValue;
    };
    onChange: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
    onClose: import("vue").PropType<() => void>;
    onClosed: import("vue").PropType<() => void>;
    onConfirm: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
    onOpen: import("vue").PropType<() => void>;
    onOpened: import("vue").PropType<() => void>;
    onReset: import("vue").PropType<(value: import("@/components").DropdownValue) => void>;
}>> & 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").SlotReturnValue)[] | ((h: typeof import("vue").h) => import("@/common").SlotReturnValue);
    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;
