import { Placement as FloatingVuePlacement } from 'floating-vue';
import { DsgButtonTheme } from './DsgButton.vue';
/**
 * ------------------------------------------------
 *  # Setup: Props
 * ------------------------------------------------
 */
export type DsgDropdownType = "avatar" | "button" | "icon";
export type DsgDropdownHeaderType = "none" | "avatar" | "title" | "subsection";
export interface DsgDropdownAvatar {
    profileUri?: string;
    fullName?: string;
    isOnline?: boolean;
    uri?: string | undefined;
    title?: string;
    subText?: string;
}
export interface DsgDropdownMenuItem {
    type?: string | "item" | "divider";
    label?: string;
    icon?: string;
    action?: () => void | null | undefined;
    hotkey?: string;
    hotkeyPreventDefault?: boolean;
    uri?: string;
    uriTarget?: "_blank" | "_self" | "_parent" | "_top" | "framename" | undefined;
    /** Whether the menu item is disabled and should not be displayed */
    disabled?: boolean;
}
export interface DsgDropdownProps {
    label?: string;
    type?: DsgDropdownType;
    icon?: string;
    iconBefore?: string;
    buttonTheme?: DsgButtonTheme;
    menuItems?: DsgDropdownMenuItem[];
    avatarInfo?: DsgDropdownAvatar | null;
    isOpen?: boolean;
    placement?: FloatingVuePlacement;
    headerType?: DsgDropdownHeaderType;
    headerTitle?: string;
    strategy?: "absolute" | "fixed" | undefined;
    skidding?: number;
    distance?: number;
    size?: "sm" | "md";
}
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        'dsg-dropdown--trigger'?(_: {}): any;
        'dsg-dropdown-menu--header'?(_: {}): any;
        'dsg-dropdown-menu-content'?(_: {}): any;
    };
    refs: {
        dsgDropdown: HTMLDivElement;
        floatingVueDropdownEl: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
            theme: {
                type: StringConstructor;
                default: any;
            };
            referenceNode: {
                type: import('vue').PropType<() => Element>;
                default: any;
            };
            shown: {
                type: BooleanConstructor;
                default: boolean;
            };
            showGroup: {
                type: StringConstructor;
                default: any;
            };
            ariaId: {
                default: any;
            };
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            positioningDisabled: {
                type: BooleanConstructor;
                default: any;
            };
            placement: {
                type: import('vue').PropType<FloatingVuePlacement>;
                default: any;
            };
            delay: {
                type: import('vue').PropType<string | number | {
                    show: number;
                    hide: number;
                }>;
                default: any;
            };
            distance: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            skidding: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            triggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
                default: any;
            };
            showTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            hideTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            popperTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
                default: any;
            };
            popperShowTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            popperHideTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            container: {
                type: any[];
                default: any;
            };
            boundary: {
                type: any[];
                default: any;
            };
            strategy: {
                type: import('vue').PropType<"absolute" | "fixed">;
                default: any;
            };
            autoHide: {
                type: import('vue').PropType<boolean | ((event: Event) => boolean)>;
                default: any;
            };
            handleResize: {
                type: BooleanConstructor;
                default: any;
            };
            instantMove: {
                type: BooleanConstructor;
                default: any;
            };
            eagerMount: {
                type: BooleanConstructor;
                default: any;
            };
            popperClass: {
                type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
                default: any;
            };
            computeTransformOrigin: {
                type: BooleanConstructor;
                default: any;
            };
            autoMinSize: {
                type: BooleanConstructor;
                default: any;
            };
            autoSize: {
                type: import('vue').PropType<boolean | "min" | "max">;
                default: any;
            };
            autoMaxSize: {
                type: BooleanConstructor;
                default: any;
            };
            autoBoundaryMaxSize: {
                type: BooleanConstructor;
                default: any;
            };
            preventOverflow: {
                type: BooleanConstructor;
                default: any;
            };
            overflowPadding: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            arrowPadding: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            arrowOverflow: {
                type: BooleanConstructor;
                default: any;
            };
            flip: {
                type: BooleanConstructor;
                default: any;
            };
            shift: {
                type: BooleanConstructor;
                default: any;
            };
            shiftCrossAxis: {
                type: BooleanConstructor;
                default: any;
            };
            noAutoFocus: {
                type: BooleanConstructor;
                default: any;
            };
            disposeTimeout: {
                type: NumberConstructor;
                default: any;
            };
        }>> & {
            onResize?: () => any;
            onShow?: () => any;
            onHide?: () => any;
            "onUpdate:shown"?: (shown: boolean) => any;
            "onApply-show"?: () => any;
            "onApply-hide"?: () => any;
            "onClose-group"?: () => any;
            "onClose-directive"?: () => any;
            "onAuto-hide"?: () => any;
        }, unknown, unknown, {
            finalTheme(): string;
        }, {
            getTargetNodes(): unknown[];
        }, {
            computed: {
                themeClass(): string[];
            };
        } | {
            methods: {
                show(
                /**
                 * ------------------------------------------------
                 *  # Import: Dependencies
                 * ------------------------------------------------
                 */
                ...args: any[]): any;
                hide(
                /**
                 * ------------------------------------------------
                 *  # Import: Dependencies
                 * ------------------------------------------------
                 */
                ...args: any[]): any;
                dispose(
                /**
                 * ------------------------------------------------
                 *  # Import: Dependencies
                 * ------------------------------------------------
                 */
                ...args: any[]): any;
                onResize(
                /**
                 * ------------------------------------------------
                 *  # Import: Dependencies
                 * ------------------------------------------------
                 */
                ...args: any[]): any;
            };
        }, import('vue').ComponentOptionsMixin, {
            show: () => true;
            hide: () => true;
            'update:shown': (shown: boolean) => true;
            'apply-show': () => true;
            'apply-hide': () => true;
            'close-group': () => true;
            'close-directive': () => true;
            'auto-hide': () => true;
            resize: () => true;
        }, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, {
            placement: FloatingVuePlacement;
            strategy: "absolute" | "fixed";
            disabled: boolean;
            positioningDisabled: boolean;
            delay: string | number | {
                show: number;
                hide: number;
            };
            distance: string | number;
            skidding: string | number;
            triggers: import('floating-vue').TriggerEvent[];
            showTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            hideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            popperTriggers: import('floating-vue').TriggerEvent[];
            popperShowTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            popperHideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            container: any;
            boundary: any;
            autoHide: boolean | ((event: Event) => boolean);
            handleResize: boolean;
            instantMove: boolean;
            eagerMount: boolean;
            popperClass: string | unknown[] | Record<string, any>;
            computeTransformOrigin: boolean;
            autoMinSize: boolean;
            autoSize: boolean | "min" | "max";
            autoMaxSize: boolean;
            autoBoundaryMaxSize: boolean;
            preventOverflow: boolean;
            overflowPadding: string | number;
            arrowPadding: string | number;
            arrowOverflow: boolean;
            flip: boolean;
            shift: boolean;
            shiftCrossAxis: boolean;
            noAutoFocus: boolean;
            disposeTimeout: number;
            shown: boolean;
            theme: string;
            referenceNode: () => Element;
            showGroup: string;
            ariaId: any;
        }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {
                themeClass(): string[];
            };
            M: import('vue').MethodOptions;
            Defaults: {};
        } & {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        } & {
            P: {};
            B: {};
            D: {};
            C: import('vue').ComputedOptions;
            M: {
                show(...args: any[]): any;
                hide(...args: any[]): any;
                dispose(...args: any[]): any;
                onResize(...args: any[]): any;
            };
            Defaults: {};
        }, Readonly<import('vue').ExtractPropTypes<{
            theme: {
                type: StringConstructor;
                default: any;
            };
            referenceNode: {
                type: import('vue').PropType<() => Element>;
                default: any;
            };
            shown: {
                type: BooleanConstructor;
                default: boolean;
            };
            showGroup: {
                type: StringConstructor;
                default: any;
            };
            ariaId: {
                default: any;
            };
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            positioningDisabled: {
                type: BooleanConstructor;
                default: any;
            };
            placement: {
                type: import('vue').PropType<FloatingVuePlacement>;
                default: any;
            };
            delay: {
                type: import('vue').PropType<string | number | {
                    show: number;
                    hide: number;
                }>;
                default: any;
            };
            distance: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            skidding: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            triggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
                default: any;
            };
            showTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            hideTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            popperTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
                default: any;
            };
            popperShowTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            popperHideTriggers: {
                type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
                default: any;
            };
            container: {
                type: any[];
                default: any;
            };
            boundary: {
                type: any[];
                default: any;
            };
            strategy: {
                type: import('vue').PropType<"absolute" | "fixed">;
                default: any;
            };
            autoHide: {
                type: import('vue').PropType<boolean | ((event: Event) => boolean)>;
                default: any;
            };
            handleResize: {
                type: BooleanConstructor;
                default: any;
            };
            instantMove: {
                type: BooleanConstructor;
                default: any;
            };
            eagerMount: {
                type: BooleanConstructor;
                default: any;
            };
            popperClass: {
                type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
                default: any;
            };
            computeTransformOrigin: {
                type: BooleanConstructor;
                default: any;
            };
            autoMinSize: {
                type: BooleanConstructor;
                default: any;
            };
            autoSize: {
                type: import('vue').PropType<boolean | "min" | "max">;
                default: any;
            };
            autoMaxSize: {
                type: BooleanConstructor;
                default: any;
            };
            autoBoundaryMaxSize: {
                type: BooleanConstructor;
                default: any;
            };
            preventOverflow: {
                type: BooleanConstructor;
                default: any;
            };
            overflowPadding: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            arrowPadding: {
                type: (StringConstructor | NumberConstructor)[];
                default: any;
            };
            arrowOverflow: {
                type: BooleanConstructor;
                default: any;
            };
            flip: {
                type: BooleanConstructor;
                default: any;
            };
            shift: {
                type: BooleanConstructor;
                default: any;
            };
            shiftCrossAxis: {
                type: BooleanConstructor;
                default: any;
            };
            noAutoFocus: {
                type: BooleanConstructor;
                default: any;
            };
            disposeTimeout: {
                type: NumberConstructor;
                default: any;
            };
        }>> & {
            onResize?: () => any;
            onShow?: () => any;
            onHide?: () => any;
            "onUpdate:shown"?: (shown: boolean) => any;
            "onApply-show"?: () => any;
            "onApply-hide"?: () => any;
            "onClose-group"?: () => any;
            "onClose-directive"?: () => any;
            "onAuto-hide"?: () => any;
        }, {}, {}, {
            themeClass(): string[];
        } & import('vue').ComputedOptions & {
            finalTheme(): string;
        }, import('vue').MethodOptions & {
            show(...args: any[]): any;
            hide(...args: any[]): any;
            dispose(...args: any[]): any;
            onResize(...args: any[]): any;
        } & {
            getTargetNodes(): unknown[];
        }, {
            placement: FloatingVuePlacement;
            strategy: "absolute" | "fixed";
            disabled: boolean;
            positioningDisabled: boolean;
            delay: string | number | {
                show: number;
                hide: number;
            };
            distance: string | number;
            skidding: string | number;
            triggers: import('floating-vue').TriggerEvent[];
            showTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            hideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            popperTriggers: import('floating-vue').TriggerEvent[];
            popperShowTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            popperHideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
            container: any;
            boundary: any;
            autoHide: boolean | ((event: Event) => boolean);
            handleResize: boolean;
            instantMove: boolean;
            eagerMount: boolean;
            popperClass: string | unknown[] | Record<string, any>;
            computeTransformOrigin: boolean;
            autoMinSize: boolean;
            autoSize: boolean | "min" | "max";
            autoMaxSize: boolean;
            autoBoundaryMaxSize: boolean;
            preventOverflow: boolean;
            overflowPadding: string | number;
            arrowPadding: string | number;
            arrowOverflow: boolean;
            flip: boolean;
            shift: boolean;
            shiftCrossAxis: boolean;
            noAutoFocus: boolean;
            disposeTimeout: number;
            shown: boolean;
            theme: string;
            referenceNode: () => Element;
            showGroup: string;
            ariaId: any;
        }> | null;
        dsgDropdownAvatarTriggerEl: ({
            $: import('vue').ComponentInternalInstance;
            $data: {};
            $props: {
                readonly profileUri?: string | undefined;
                readonly fullName?: string | undefined;
                readonly size?: import('./DsgAvatar.vue').DsgAvatarSize | undefined;
                readonly theme?: import('./DsgAvatar.vue').DsgAvatarTheme | undefined;
                readonly isOnline?: boolean | undefined;
                readonly uri?: string | undefined | undefined;
                readonly companyLogoUri?: string | undefined | undefined;
                readonly preventDefault?: boolean | undefined;
                readonly title?: string | undefined;
                readonly subText?: string | undefined;
                readonly noFocus?: boolean | undefined;
                readonly "onAvatar-clicked"?: ((clickEvent: Event) => any) | undefined;
                readonly "onBefore-change-status"?: ((oldStatus: boolean, newStatus: boolean) => any) | undefined;
                readonly "onAfter-change-status"?: ((status: boolean) => any) | undefined;
            } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
            $attrs: import('vue').Attrs;
            $refs: {
                [x: string]: unknown;
            } & {
                avatarLink: HTMLAnchorElement;
                avatarImageWrapperEl: HTMLDivElement;
            };
            $slots: Readonly<{
                [name: string]: import('vue').Slot<any> | undefined;
            }>;
            $root: import('vue').ComponentPublicInstance | null;
            $parent: import('vue').ComponentPublicInstance | null;
            $host: Element | null;
            $emit: ((event: "avatar-clicked", clickEvent: Event) => void) & ((event: "before-change-status", oldStatus: boolean, newStatus: boolean) => void) & ((event: "after-change-status", status: boolean) => void);
            $el: HTMLDivElement;
            $options: import('vue').ComponentOptionsBase<Readonly<import('./DsgAvatar.vue').DsgAvatarProps> & Readonly<{
                "onAvatar-clicked"?: ((clickEvent: Event) => any) | undefined;
                "onBefore-change-status"?: ((oldStatus: boolean, newStatus: boolean) => any) | undefined;
                "onAfter-change-status"?: ((status: boolean) => any) | undefined;
            }>, {
                setUserActiveStatus: (activeStatus: boolean) => void;
                toggleFocus: (focus: boolean) => void;
            }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
                "avatar-clicked": (clickEvent: Event) => any;
                "before-change-status": (oldStatus: boolean, newStatus: boolean) => any;
                "after-change-status": (status: boolean) => any;
            }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').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: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: typeof import('vue').nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
        } & Readonly<{}> & Omit<Readonly<import('./DsgAvatar.vue').DsgAvatarProps> & Readonly<{
            "onAvatar-clicked"?: ((clickEvent: Event) => any) | undefined;
            "onBefore-change-status"?: ((oldStatus: boolean, newStatus: boolean) => any) | undefined;
            "onAfter-change-status"?: ((status: boolean) => any) | undefined;
        }>, "setUserActiveStatus" | "toggleFocus"> & {
            setUserActiveStatus: (activeStatus: boolean) => void;
            toggleFocus: (focus: boolean) => void;
        } & {} & import('vue').ComponentCustomProperties & {} & {
            $slots: {
                'dsg-avatar--background'?(_: {}): any;
                'dsg-avatar--status'?(_: {}): any;
                'dsg-avatar--title'?(_: {}): any;
                'dsg-avatar--subtext'?(_: {}): any;
            };
        }) | null;
        dsgDropdownButtonTriggerEl: ({
            $: import('vue').ComponentInternalInstance;
            $data: {};
            $props: {
                readonly label?: string | undefined;
                readonly type?: import('./DsgButton.vue').DsgButtonType | undefined;
                readonly theme?: DsgButtonTheme | undefined;
                readonly size?: import('./DsgButton.vue').DsgButtonSize | undefined;
                readonly disabled?: boolean | undefined;
                readonly iconBefore?: string | null | undefined;
                readonly iconAfter?: string | null | undefined;
                readonly width?: import('./DsgButton.vue').DsgButtonWidth | undefined;
                readonly uri?: string | null | undefined;
                readonly targetUri?: import('./DsgButton.vue').DsgButtonTargetUri | undefined;
                readonly preventDefault?: boolean | undefined;
                readonly "onButton-clicked"?: ((clickEvent: Event) => any) | undefined;
            } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
            $attrs: import('vue').Attrs;
            $refs: {
                [x: string]: unknown;
            } & {
                dsgButtonEl: unknown;
            };
            $slots: Readonly<{
                [name: string]: import('vue').Slot<any> | undefined;
            }>;
            $root: import('vue').ComponentPublicInstance | null;
            $parent: import('vue').ComponentPublicInstance | null;
            $host: Element | null;
            $emit: (event: "button-clicked", clickEvent: Event) => void;
            $el: any;
            $options: import('vue').ComponentOptionsBase<Readonly<import('./DsgButton.vue').DsgButtonProps> & Readonly<{
                "onButton-clicked"?: ((clickEvent: Event) => any) | undefined;
            }>, {
                focusButton: (focus: boolean) => void;
            }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
                "button-clicked": (clickEvent: Event) => any;
            }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').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: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: typeof import('vue').nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
        } & Readonly<{}> & Omit<Readonly<import('./DsgButton.vue').DsgButtonProps> & Readonly<{
            "onButton-clicked"?: ((clickEvent: Event) => any) | undefined;
        }>, "focusButton"> & {
            focusButton: (focus: boolean) => void;
        } & {} & import('vue').ComponentCustomProperties & {} & {
            $slots: {
                'dsg-button--icon-before'?(_: {}): any;
                'dsg-button--icon-after'?(_: {}): any;
            };
        }) | null;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<DsgDropdownProps, {
    handleTriggerClick: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<DsgDropdownProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    dsgDropdown: HTMLDivElement;
    floatingVueDropdownEl: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
        theme: {
            type: StringConstructor;
            default: any;
        };
        referenceNode: {
            type: import('vue').PropType<() => Element>;
            default: any;
        };
        shown: {
            type: BooleanConstructor;
            default: boolean;
        };
        showGroup: {
            type: StringConstructor;
            default: any;
        };
        ariaId: {
            default: any;
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        positioningDisabled: {
            type: BooleanConstructor;
            default: any;
        };
        placement: {
            type: import('vue').PropType<FloatingVuePlacement>;
            default: any;
        };
        delay: {
            type: import('vue').PropType<string | number | {
                show: number;
                hide: number;
            }>;
            default: any;
        };
        distance: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        skidding: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        triggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
            default: any;
        };
        showTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        hideTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        popperTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
            default: any;
        };
        popperShowTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        popperHideTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        container: {
            type: any[];
            default: any;
        };
        boundary: {
            type: any[];
            default: any;
        };
        strategy: {
            type: import('vue').PropType<"absolute" | "fixed">;
            default: any;
        };
        autoHide: {
            type: import('vue').PropType<boolean | ((event: Event) => boolean)>;
            default: any;
        };
        handleResize: {
            type: BooleanConstructor;
            default: any;
        };
        instantMove: {
            type: BooleanConstructor;
            default: any;
        };
        eagerMount: {
            type: BooleanConstructor;
            default: any;
        };
        popperClass: {
            type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
            default: any;
        };
        computeTransformOrigin: {
            type: BooleanConstructor;
            default: any;
        };
        autoMinSize: {
            type: BooleanConstructor;
            default: any;
        };
        autoSize: {
            type: import('vue').PropType<boolean | "min" | "max">;
            default: any;
        };
        autoMaxSize: {
            type: BooleanConstructor;
            default: any;
        };
        autoBoundaryMaxSize: {
            type: BooleanConstructor;
            default: any;
        };
        preventOverflow: {
            type: BooleanConstructor;
            default: any;
        };
        overflowPadding: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        arrowPadding: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        arrowOverflow: {
            type: BooleanConstructor;
            default: any;
        };
        flip: {
            type: BooleanConstructor;
            default: any;
        };
        shift: {
            type: BooleanConstructor;
            default: any;
        };
        shiftCrossAxis: {
            type: BooleanConstructor;
            default: any;
        };
        noAutoFocus: {
            type: BooleanConstructor;
            default: any;
        };
        disposeTimeout: {
            type: NumberConstructor;
            default: any;
        };
    }>> & {
        onResize?: () => any;
        onShow?: () => any;
        onHide?: () => any;
        "onUpdate:shown"?: (shown: boolean) => any;
        "onApply-show"?: () => any;
        "onApply-hide"?: () => any;
        "onClose-group"?: () => any;
        "onClose-directive"?: () => any;
        "onAuto-hide"?: () => any;
    }, unknown, unknown, {
        finalTheme(): string;
    }, {
        getTargetNodes(): unknown[];
    }, {
        computed: {
            themeClass(): string[];
        };
    } | {
        methods: {
            show(
            /**
             * ------------------------------------------------
             *  # Import: Dependencies
             * ------------------------------------------------
             */
            ...args: any[]): any;
            hide(
            /**
             * ------------------------------------------------
             *  # Import: Dependencies
             * ------------------------------------------------
             */
            ...args: any[]): any;
            dispose(
            /**
             * ------------------------------------------------
             *  # Import: Dependencies
             * ------------------------------------------------
             */
            ...args: any[]): any;
            onResize(
            /**
             * ------------------------------------------------
             *  # Import: Dependencies
             * ------------------------------------------------
             */
            ...args: any[]): any;
        };
    }, import('vue').ComponentOptionsMixin, {
        show: () => true;
        hide: () => true;
        'update:shown': (shown: boolean) => true;
        'apply-show': () => true;
        'apply-hide': () => true;
        'close-group': () => true;
        'close-directive': () => true;
        'auto-hide': () => true;
        resize: () => true;
    }, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, {
        placement: FloatingVuePlacement;
        strategy: "absolute" | "fixed";
        disabled: boolean;
        positioningDisabled: boolean;
        delay: string | number | {
            show: number;
            hide: number;
        };
        distance: string | number;
        skidding: string | number;
        triggers: import('floating-vue').TriggerEvent[];
        showTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        hideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        popperTriggers: import('floating-vue').TriggerEvent[];
        popperShowTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        popperHideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        container: any;
        boundary: any;
        autoHide: boolean | ((event: Event) => boolean);
        handleResize: boolean;
        instantMove: boolean;
        eagerMount: boolean;
        popperClass: string | unknown[] | Record<string, any>;
        computeTransformOrigin: boolean;
        autoMinSize: boolean;
        autoSize: boolean | "min" | "max";
        autoMaxSize: boolean;
        autoBoundaryMaxSize: boolean;
        preventOverflow: boolean;
        overflowPadding: string | number;
        arrowPadding: string | number;
        arrowOverflow: boolean;
        flip: boolean;
        shift: boolean;
        shiftCrossAxis: boolean;
        noAutoFocus: boolean;
        disposeTimeout: number;
        shown: boolean;
        theme: string;
        referenceNode: () => Element;
        showGroup: string;
        ariaId: any;
    }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {
            themeClass(): string[];
        };
        M: import('vue').MethodOptions;
        Defaults: {};
    } & {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    } & {
        P: {};
        B: {};
        D: {};
        C: import('vue').ComputedOptions;
        M: {
            show(...args: any[]): any;
            hide(...args: any[]): any;
            dispose(...args: any[]): any;
            onResize(...args: any[]): any;
        };
        Defaults: {};
    }, Readonly<import('vue').ExtractPropTypes<{
        theme: {
            type: StringConstructor;
            default: any;
        };
        referenceNode: {
            type: import('vue').PropType<() => Element>;
            default: any;
        };
        shown: {
            type: BooleanConstructor;
            default: boolean;
        };
        showGroup: {
            type: StringConstructor;
            default: any;
        };
        ariaId: {
            default: any;
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        positioningDisabled: {
            type: BooleanConstructor;
            default: any;
        };
        placement: {
            type: import('vue').PropType<FloatingVuePlacement>;
            default: any;
        };
        delay: {
            type: import('vue').PropType<string | number | {
                show: number;
                hide: number;
            }>;
            default: any;
        };
        distance: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        skidding: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        triggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
            default: any;
        };
        showTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        hideTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        popperTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[]>;
            default: any;
        };
        popperShowTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        popperHideTriggers: {
            type: import('vue').PropType<import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[])>;
            default: any;
        };
        container: {
            type: any[];
            default: any;
        };
        boundary: {
            type: any[];
            default: any;
        };
        strategy: {
            type: import('vue').PropType<"absolute" | "fixed">;
            default: any;
        };
        autoHide: {
            type: import('vue').PropType<boolean | ((event: Event) => boolean)>;
            default: any;
        };
        handleResize: {
            type: BooleanConstructor;
            default: any;
        };
        instantMove: {
            type: BooleanConstructor;
            default: any;
        };
        eagerMount: {
            type: BooleanConstructor;
            default: any;
        };
        popperClass: {
            type: (ObjectConstructor | StringConstructor | ArrayConstructor)[];
            default: any;
        };
        computeTransformOrigin: {
            type: BooleanConstructor;
            default: any;
        };
        autoMinSize: {
            type: BooleanConstructor;
            default: any;
        };
        autoSize: {
            type: import('vue').PropType<boolean | "min" | "max">;
            default: any;
        };
        autoMaxSize: {
            type: BooleanConstructor;
            default: any;
        };
        autoBoundaryMaxSize: {
            type: BooleanConstructor;
            default: any;
        };
        preventOverflow: {
            type: BooleanConstructor;
            default: any;
        };
        overflowPadding: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        arrowPadding: {
            type: (StringConstructor | NumberConstructor)[];
            default: any;
        };
        arrowOverflow: {
            type: BooleanConstructor;
            default: any;
        };
        flip: {
            type: BooleanConstructor;
            default: any;
        };
        shift: {
            type: BooleanConstructor;
            default: any;
        };
        shiftCrossAxis: {
            type: BooleanConstructor;
            default: any;
        };
        noAutoFocus: {
            type: BooleanConstructor;
            default: any;
        };
        disposeTimeout: {
            type: NumberConstructor;
            default: any;
        };
    }>> & {
        onResize?: () => any;
        onShow?: () => any;
        onHide?: () => any;
        "onUpdate:shown"?: (shown: boolean) => any;
        "onApply-show"?: () => any;
        "onApply-hide"?: () => any;
        "onClose-group"?: () => any;
        "onClose-directive"?: () => any;
        "onAuto-hide"?: () => any;
    }, {}, {}, {
        themeClass(): string[];
    } & import('vue').ComputedOptions & {
        finalTheme(): string;
    }, import('vue').MethodOptions & {
        show(...args: any[]): any;
        hide(...args: any[]): any;
        dispose(...args: any[]): any;
        onResize(...args: any[]): any;
    } & {
        getTargetNodes(): unknown[];
    }, {
        placement: FloatingVuePlacement;
        strategy: "absolute" | "fixed";
        disabled: boolean;
        positioningDisabled: boolean;
        delay: string | number | {
            show: number;
            hide: number;
        };
        distance: string | number;
        skidding: string | number;
        triggers: import('floating-vue').TriggerEvent[];
        showTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        hideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        popperTriggers: import('floating-vue').TriggerEvent[];
        popperShowTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        popperHideTriggers: import('floating-vue').TriggerEvent[] | ((triggers: import('floating-vue').TriggerEvent[]) => import('floating-vue').TriggerEvent[]);
        container: any;
        boundary: any;
        autoHide: boolean | ((event: Event) => boolean);
        handleResize: boolean;
        instantMove: boolean;
        eagerMount: boolean;
        popperClass: string | unknown[] | Record<string, any>;
        computeTransformOrigin: boolean;
        autoMinSize: boolean;
        autoSize: boolean | "min" | "max";
        autoMaxSize: boolean;
        autoBoundaryMaxSize: boolean;
        preventOverflow: boolean;
        overflowPadding: string | number;
        arrowPadding: string | number;
        arrowOverflow: boolean;
        flip: boolean;
        shift: boolean;
        shiftCrossAxis: boolean;
        noAutoFocus: boolean;
        disposeTimeout: number;
        shown: boolean;
        theme: string;
        referenceNode: () => Element;
        showGroup: string;
        ariaId: any;
    }> | null;
    dsgDropdownAvatarTriggerEl: ({
        $: import('vue').ComponentInternalInstance;
        $data: {};
        $props: {
            readonly profileUri?: string | undefined;
            readonly fullName?: string | undefined;
            readonly size?: import('./DsgAvatar.vue').DsgAvatarSize | undefined;
            readonly theme?: import('./DsgAvatar.vue').DsgAvatarTheme | undefined;
            readonly isOnline?: boolean | undefined;
            readonly uri?: string | undefined | undefined;
            readonly companyLogoUri?: string | undefined | undefined;
            readonly preventDefault?: boolean | undefined;
            readonly title?: string | undefined;
            readonly subText?: string | undefined;
            readonly noFocus?: boolean | undefined;
            readonly "onAvatar-clicked"?: ((clickEvent: Event) => any) | undefined;
            readonly "onBefore-change-status"?: ((oldStatus: boolean, newStatus: boolean) => any) | undefined;
            readonly "onAfter-change-status"?: ((status: boolean) => any) | undefined;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
        $attrs: import('vue').Attrs;
        $refs: {
            [x: string]: unknown;
        } & {
            avatarLink: HTMLAnchorElement;
            avatarImageWrapperEl: HTMLDivElement;
        };
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any> | undefined;
        }>;
        $root: import('vue').ComponentPublicInstance | null;
        $parent: import('vue').ComponentPublicInstance | null;
        $host: Element | null;
        $emit: ((event: "avatar-clicked", clickEvent: Event) => void) & ((event: "before-change-status", oldStatus: boolean, newStatus: boolean) => void) & ((event: "after-change-status", status: boolean) => void);
        $el: HTMLDivElement;
        $options: import('vue').ComponentOptionsBase<Readonly<import('./DsgAvatar.vue').DsgAvatarProps> & Readonly<{
            "onAvatar-clicked"?: ((clickEvent: Event) => any) | undefined;
            "onBefore-change-status"?: ((oldStatus: boolean, newStatus: boolean) => any) | undefined;
            "onAfter-change-status"?: ((status: boolean) => any) | undefined;
        }>, {
            setUserActiveStatus: (activeStatus: boolean) => void;
            toggleFocus: (focus: boolean) => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
            "avatar-clicked": (clickEvent: Event) => any;
            "before-change-status": (oldStatus: boolean, newStatus: boolean) => any;
            "after-change-status": (status: boolean) => any;
        }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').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: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: typeof import('vue').nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
    } & Readonly<{}> & Omit<Readonly<import('./DsgAvatar.vue').DsgAvatarProps> & Readonly<{
        "onAvatar-clicked"?: ((clickEvent: Event) => any) | undefined;
        "onBefore-change-status"?: ((oldStatus: boolean, newStatus: boolean) => any) | undefined;
        "onAfter-change-status"?: ((status: boolean) => any) | undefined;
    }>, "setUserActiveStatus" | "toggleFocus"> & {
        setUserActiveStatus: (activeStatus: boolean) => void;
        toggleFocus: (focus: boolean) => void;
    } & {} & import('vue').ComponentCustomProperties & {} & {
        $slots: {
            'dsg-avatar--background'?(_: {}): any;
            'dsg-avatar--status'?(_: {}): any;
            'dsg-avatar--title'?(_: {}): any;
            'dsg-avatar--subtext'?(_: {}): any;
        };
    }) | null;
    dsgDropdownButtonTriggerEl: ({
        $: import('vue').ComponentInternalInstance;
        $data: {};
        $props: {
            readonly label?: string | undefined;
            readonly type?: import('./DsgButton.vue').DsgButtonType | undefined;
            readonly theme?: DsgButtonTheme | undefined;
            readonly size?: import('./DsgButton.vue').DsgButtonSize | undefined;
            readonly disabled?: boolean | undefined;
            readonly iconBefore?: string | null | undefined;
            readonly iconAfter?: string | null | undefined;
            readonly width?: import('./DsgButton.vue').DsgButtonWidth | undefined;
            readonly uri?: string | null | undefined;
            readonly targetUri?: import('./DsgButton.vue').DsgButtonTargetUri | undefined;
            readonly preventDefault?: boolean | undefined;
            readonly "onButton-clicked"?: ((clickEvent: Event) => any) | undefined;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
        $attrs: import('vue').Attrs;
        $refs: {
            [x: string]: unknown;
        } & {
            dsgButtonEl: unknown;
        };
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any> | undefined;
        }>;
        $root: import('vue').ComponentPublicInstance | null;
        $parent: import('vue').ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: "button-clicked", clickEvent: Event) => void;
        $el: any;
        $options: import('vue').ComponentOptionsBase<Readonly<import('./DsgButton.vue').DsgButtonProps> & Readonly<{
            "onButton-clicked"?: ((clickEvent: Event) => any) | undefined;
        }>, {
            focusButton: (focus: boolean) => void;
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
            "button-clicked": (clickEvent: Event) => any;
        }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').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: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: typeof import('vue').nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
    } & Readonly<{}> & Omit<Readonly<import('./DsgButton.vue').DsgButtonProps> & Readonly<{
        "onButton-clicked"?: ((clickEvent: Event) => any) | undefined;
    }>, "focusButton"> & {
        focusButton: (focus: boolean) => void;
    } & {} & import('vue').ComponentCustomProperties & {} & {
        $slots: {
            'dsg-button--icon-before'?(_: {}): any;
            'dsg-button--icon-after'?(_: {}): any;
        };
    }) | null;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
