import { DropdownItemProps } from './dropdown-item.js';
import { ComponentInternalInstance, VNodeProps, AllowedComponentProps, ComponentCustomProps, Attrs, Slot, ComponentPublicInstance, ComponentOptionsBase, Ref, ComponentOptionsMixin, GlobalComponents, GlobalDirectives, ComponentProvideOptions, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ShallowUnwrapRef, ComponentCustomProperties, DefineComponent, PublicProps } from 'vue';
import { OnCleanup } from '@vue/reactivity';
import { DropdownCommand } from './dropdown.js';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        default?: () => unknown;
        icon?: () => unknown;
        description?: () => unknown;
    }> & {
        default?: () => unknown;
        icon?: () => unknown;
        description?: () => unknown;
    };
    refs: {
        itemRef: ({
            $: ComponentInternalInstance;
            $data: {};
            $props: {
                readonly role: "menuitem" | "link";
                readonly active?: boolean | undefined;
                readonly disabled?: boolean | undefined;
                readonly divided?: boolean | undefined;
                readonly icon?: string | undefined;
                readonly danger?: boolean | undefined;
                readonly description?: string | undefined;
                readonly textValue?: string | undefined;
                readonly tabindex?: number | undefined;
            } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
            $attrs: Attrs;
            $refs: {
                [x: string]: unknown;
            } & {
                itemRef: HTMLButtonElement;
            };
            $slots: Readonly<{
                [name: string]: Slot<any> | undefined;
            }>;
            $root: ComponentPublicInstance | null;
            $parent: ComponentPublicInstance | null;
            $host: Element | null;
            $emit: (event: string, ...args: any[]) => void;
            $el: any;
            $options: ComponentOptionsBase<Readonly<{
                role: "menuitem" | "link";
                active?: boolean;
                disabled?: boolean;
                divided?: boolean;
                icon?: string;
                danger?: boolean;
                description?: string;
                textValue?: string;
                tabindex?: number;
            }> & Readonly<{}>, {
                itemRef: Ref<HTMLButtonElement | null, HTMLButtonElement | null>;
            }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
                disabled: boolean;
                danger: boolean;
                icon: string;
                description: string;
                active: boolean;
                tabindex: number;
                divided: boolean;
                textValue: string;
            }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
        } & Readonly<{
            disabled: boolean;
            danger: boolean;
            icon: string;
            description: string;
            active: boolean;
            tabindex: number;
            divided: boolean;
            textValue: string;
        }> & Omit<Readonly<{
            role: "menuitem" | "link";
            active?: boolean;
            disabled?: boolean;
            divided?: boolean;
            icon?: string;
            danger?: boolean;
            description?: string;
            textValue?: string;
            tabindex?: number;
        }> & Readonly<{}>, "itemRef" | ("disabled" | "danger" | "icon" | "description" | "active" | "tabindex" | "divided" | "textValue")> & ShallowUnwrapRef<{
            itemRef: Ref<HTMLButtonElement | null, HTMLButtonElement | null>;
        }> & {} & ComponentCustomProperties & {} & {
            $slots: Readonly<{
                default?: () => unknown;
                icon?: () => unknown;
                description?: () => unknown;
            }> & {
                default?: () => unknown;
                icon?: () => unknown;
                description?: () => unknown;
            };
        }) | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<DropdownItemProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<DropdownItemProps> & Readonly<{}>, {
    disabled: boolean;
    danger: boolean;
    icon: string;
    description: string;
    divided: boolean;
    textValue: string;
    command: DropdownCommand;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    itemRef: ({
        $: ComponentInternalInstance;
        $data: {};
        $props: {
            readonly role: "menuitem" | "link";
            readonly active?: boolean | undefined;
            readonly disabled?: boolean | undefined;
            readonly divided?: boolean | undefined;
            readonly icon?: string | undefined;
            readonly danger?: boolean | undefined;
            readonly description?: string | undefined;
            readonly textValue?: string | undefined;
            readonly tabindex?: number | undefined;
        } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
        $attrs: Attrs;
        $refs: {
            [x: string]: unknown;
        } & {
            itemRef: HTMLButtonElement;
        };
        $slots: Readonly<{
            [name: string]: Slot<any> | undefined;
        }>;
        $root: ComponentPublicInstance | null;
        $parent: ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: string, ...args: any[]) => void;
        $el: any;
        $options: ComponentOptionsBase<Readonly<{
            role: "menuitem" | "link";
            active?: boolean;
            disabled?: boolean;
            divided?: boolean;
            icon?: string;
            danger?: boolean;
            description?: string;
            textValue?: string;
            tabindex?: number;
        }> & Readonly<{}>, {
            itemRef: Ref<HTMLButtonElement | null, HTMLButtonElement | null>;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
            disabled: boolean;
            danger: boolean;
            icon: string;
            description: string;
            active: boolean;
            tabindex: number;
            divided: boolean;
            textValue: string;
        }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
    } & Readonly<{
        disabled: boolean;
        danger: boolean;
        icon: string;
        description: string;
        active: boolean;
        tabindex: number;
        divided: boolean;
        textValue: string;
    }> & Omit<Readonly<{
        role: "menuitem" | "link";
        active?: boolean;
        disabled?: boolean;
        divided?: boolean;
        icon?: string;
        danger?: boolean;
        description?: string;
        textValue?: string;
        tabindex?: number;
    }> & Readonly<{}>, "itemRef" | ("disabled" | "danger" | "icon" | "description" | "active" | "tabindex" | "divided" | "textValue")> & ShallowUnwrapRef<{
        itemRef: Ref<HTMLButtonElement | null, HTMLButtonElement | null>;
    }> & {} & ComponentCustomProperties & {} & {
        $slots: Readonly<{
            default?: () => unknown;
            icon?: () => unknown;
            description?: () => unknown;
        }> & {
            default?: () => unknown;
            icon?: () => unknown;
            description?: () => unknown;
        };
    }) | null;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
