import { ButtonProps } from '../button/itlab-button.vue';
import { MenuProps } from './itlab-menu.vue';
import { TooltipBinding } from '../../types';
import { CurrentTheme } from 'itlab-theme-system';
import { CSSProperties } from 'vue';
export type MenuButtonProps = ButtonProps & Pick<MenuProps, 'hideArrow' | 'placement' | 'allowedPlacements'> & {
    menuStyle?: CSSProperties;
    theme?: CurrentTheme;
    tooltip?: TooltipBinding;
};
type __VLS_Props = MenuButtonProps;
type __VLS_ModelProps = {
    'visible'?: boolean;
};
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
declare var __VLS_10: {}, __VLS_26: {
    id: string;
    isVisible: boolean;
    isNested: boolean;
    theme: CurrentTheme;
    toggle: (options?: import('../floating/useFloatingInstance.composable').FloatingHideOptions) => void;
    show: () => void;
    hide: (options?: import('../floating/useFloatingInstance.composable').FloatingHideOptions) => void;
}, __VLS_29: {
    id: string;
    isVisible: boolean;
    isNested: boolean;
    theme: CurrentTheme;
    toggle: (options?: import('../floating/useFloatingInstance.composable').FloatingHideOptions) => void;
    show: () => void;
    hide: (options?: import('../floating/useFloatingInstance.composable').FloatingHideOptions) => void;
}, __VLS_32: {
    id: string;
    isVisible: boolean;
    isNested: boolean;
    theme: CurrentTheme;
    toggle: (options?: import('../floating/useFloatingInstance.composable').FloatingHideOptions) => void;
    show: () => void;
    hide: (options?: import('../floating/useFloatingInstance.composable').FloatingHideOptions) => void;
};
type __VLS_Slots = {} & {
    button?: (props: typeof __VLS_10) => any;
} & {
    header?: (props: typeof __VLS_26) => any;
} & {
    default?: (props: typeof __VLS_29) => any;
} & {
    footer?: (props: typeof __VLS_32) => any;
};
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, Readonly<import('../floating/floating.proxy').FloatingProxy>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:visible": (value: boolean | undefined) => any;
} & {
    ref: (data: any) => any;
    "before-enter": () => any;
    "after-enter": () => any;
    "before-leave": () => any;
    "after-leave": () => any;
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    onRef?: ((data: any) => any) | undefined;
    "onBefore-enter"?: (() => any) | undefined;
    "onAfter-enter"?: (() => any) | undefined;
    "onBefore-leave"?: (() => any) | undefined;
    "onAfter-leave"?: (() => any) | undefined;
    "onUpdate:visible"?: ((value: boolean | undefined) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
