import { FloatingHideOptions } from './useFloatingInstance.composable';
import { Placement } from '@floating-ui/vue';
import { CurrentTheme } from 'itlab-theme-system';
export type FloatingProps = {
    target: HTMLElement | undefined | null;
    placement?: Placement;
    allowedPlacements?: Placement[];
    theme?: CurrentTheme;
    animation?: 'bounce' | 'scale-down' | 'slide-leave' | 'none';
    maxWidth?: string | number;
    padding?: number;
    offset?: number;
    disableShift?: boolean;
    disableFlip?: boolean;
};
export type FloatingEmits = {
    (event: 'before-enter'): void;
    (event: 'after-enter'): void;
    (event: 'before-leave'): void;
    (event: 'after-leave'): void;
};
type __VLS_Props = FloatingProps & {
    showArrow?: string;
};
type __VLS_ModelProps = {
    'visible'?: boolean;
};
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
declare var __VLS_18: {
    id: string;
    isVisible: boolean;
    isNested: boolean;
    theme: CurrentTheme;
    toggle: (options?: FloatingHideOptions) => void;
    show: () => void;
    hide: (options?: FloatingHideOptions) => void;
}, __VLS_20: {
    id: string;
    isVisible: boolean;
    isNested: boolean;
    theme: CurrentTheme;
    toggle: (options?: FloatingHideOptions) => void;
    show: () => void;
    hide: (options?: FloatingHideOptions) => void;
}, __VLS_22: {
    id: string;
    isVisible: boolean;
    isNested: boolean;
    theme: CurrentTheme;
    toggle: (options?: FloatingHideOptions) => void;
    show: () => void;
    hide: (options?: FloatingHideOptions) => void;
};
type __VLS_Slots = {} & {
    header?: (props: typeof __VLS_18) => any;
} & {
    default?: (props: typeof __VLS_20) => any;
} & {
    footer?: (props: typeof __VLS_22) => any;
};
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {
    readonly id: string;
    readonly isVisible: boolean;
    readonly isNested: boolean;
    readonly theme: CurrentTheme;
    readonly toggle: (options?: FloatingHideOptions) => void;
    readonly show: () => void;
    readonly hide: (options?: FloatingHideOptions) => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:visible": (value: boolean) => any;
} & {
    "before-enter": () => any;
    "after-enter": () => any;
    "before-leave": () => any;
    "after-leave": () => any;
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    "onBefore-enter"?: (() => any) | undefined;
    "onAfter-enter"?: (() => any) | undefined;
    "onBefore-leave"?: (() => any) | undefined;
    "onAfter-leave"?: (() => any) | undefined;
    "onUpdate:visible"?: ((value: boolean) => 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;
    };
};
