import { CustomizableOptions } from '../../composables/useCustomizableOptions';
import { RouteLocationRaw } from 'vue-router';
import { NavigationItem } from './types';
type __VLS_Props = CustomizableOptions & {
    homeAriaLabel?: string;
    serviceTitle?: string;
    serviceSubtitle?: string;
    homeLink?: {
        ariaLabel?: string;
        to?: RouteLocationRaw;
        href?: string;
    };
    /** Keep the header visible */
    sticky?: boolean;
    /**
     * Show the header at sticky only when the user scroll up in mobile
     * Need 'sticky' at true,
     */
    hideWhenDown?: boolean;
    /**
     * The number of item to shown in the horizontal menu before using
     * the Burger menu (default: 6)
     */
    maxHorizontalMenuItems?: number;
    /**
     * The items to show in the horizontal menu
     */
    items?: NavigationItem[];
    /** Si activé, une confirmation sera demandée avant de changer d'onglet */
    confirmTabChange?: boolean;
    /** Message affiché dans la boîte de dialogue de confirmation (accepte un booléen pour rétrocompatibilité) */
    confirmationMessage?: string | boolean;
    /** Largeur interne */
    width?: string;
    headingLevelTitle?: 1 | 2 | 3 | 4 | 5 | 6;
};
type SlotProps = {
    menuOpen: boolean | undefined;
};
type LogoProps = {
    homeAriaLabel?: string;
    serviceTitle?: string;
    serviceSubtitle?: string;
};
type __VLS_PublicProps = {
    'burgerMenu'?: boolean;
} & __VLS_Props;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        logo: (props: SlotProps & LogoProps) => unknown;
        'logo-brand-content': (props: SlotProps & LogoProps) => unknown;
        'header-side': (props: SlotProps) => unknown;
        'navigation-bar-prepend': () => unknown;
        'navigation-bar-append': () => unknown;
        'navigation-bar-content': () => unknown;
        'navigation-menu-prepend': (props: SlotProps) => unknown;
        'navigation-menu-append': (props: SlotProps) => unknown;
        'navigation-menu-content': (props: SlotProps) => unknown;
    }> & {
        logo: (props: SlotProps & LogoProps) => unknown;
        'logo-brand-content': (props: SlotProps & LogoProps) => unknown;
        'header-side': (props: SlotProps) => unknown;
        'navigation-bar-prepend': () => unknown;
        'navigation-bar-append': () => unknown;
        'navigation-bar-content': () => unknown;
        'navigation-menu-prepend': (props: SlotProps) => unknown;
        'navigation-menu-append': (props: SlotProps) => unknown;
        'navigation-menu-content': (props: SlotProps) => unknown;
    };
    refs: {
        horizontalNavbarRef: ({
            $: import('vue').ComponentInternalInstance;
            $data: {};
            $props: {
                readonly vuetifyOptions?: {
                    [x: string]: {
                        [x: string]: unknown;
                    };
                } | undefined;
                readonly items?: NavigationItem[] | undefined;
                readonly confirmTabChange?: boolean | undefined;
                readonly confirmationMessage?: string | boolean | undefined;
                readonly width?: string | undefined;
                readonly "onCancel-navigation"?: ((...args: any[]) => any) | undefined;
                readonly "onConfirm-tab-change"?: ((...args: any[]) => any) | undefined;
            } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
            $attrs: import('vue').Attrs;
            $refs: {
                [x: string]: 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: "cancel-navigation", ...args: any[]) => void) & ((event: "confirm-tab-change", ...args: any[]) => void);
            $el: any;
            $options: import('vue').ComponentOptionsBase<Readonly<CustomizableOptions & {
                items?: NavigationItem[];
                confirmTabChange?: boolean;
                confirmationMessage?: string | boolean;
                width?: string;
            }> & Readonly<{
                "onCancel-navigation"?: ((...args: any[]) => any) | undefined;
                "onConfirm-tab-change"?: ((...args: any[]) => any) | undefined;
            }>, {
                resetTabSelection: () => {
                    activeTab: number;
                    activeItemIndex: number;
                };
            }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
                "cancel-navigation": (...args: any[]) => void;
                "confirm-tab-change": (...args: any[]) => void;
            }, string, {
                width: string;
                items: NavigationItem[];
                confirmTabChange: boolean;
                confirmationMessage: string | boolean;
            }, {}, 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<{
            width: string;
            items: NavigationItem[];
            confirmTabChange: boolean;
            confirmationMessage: string | boolean;
        }> & Omit<Readonly<CustomizableOptions & {
            items?: NavigationItem[];
            confirmTabChange?: boolean;
            confirmationMessage?: string | boolean;
            width?: string;
        }> & Readonly<{
            "onCancel-navigation"?: ((...args: any[]) => any) | undefined;
            "onConfirm-tab-change"?: ((...args: any[]) => any) | undefined;
        }>, "resetTabSelection" | ("width" | "items" | "confirmTabChange" | "confirmationMessage")> & {
            resetTabSelection: () => {
                activeTab: number;
                activeItemIndex: number;
            };
        } & {} & import('vue').ComponentCustomProperties & {} & {
            $slots: Readonly<{
                'navigation-bar-prepend': () => unknown;
                'navigation-bar-append': () => unknown;
                default: () => unknown;
            }> & {
                'navigation-bar-prepend': () => unknown;
                'navigation-bar-append': () => unknown;
                default: () => unknown;
            };
        }) | null;
    };
    rootEl: HTMLElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {
    resetTabSelection: () => {
        activeTab: number;
        activeItemIndex: number;
    } | null;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "confirm-tab-change": (...args: any[]) => void;
    "update:burgerMenu": (value: boolean) => void;
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    "onConfirm-tab-change"?: ((...args: any[]) => any) | undefined;
    "onUpdate:burgerMenu"?: ((value: boolean) => any) | undefined;
}>, {
    width: string;
    sticky: boolean;
    items: NavigationItem[];
    serviceTitle: string;
    serviceSubtitle: string;
    homeLink: {
        ariaLabel?: string;
        to?: RouteLocationRaw;
        href?: string;
    };
    headingLevelTitle: 1 | 2 | 3 | 4 | 5 | 6;
    hideWhenDown: boolean;
    homeAriaLabel: string;
    confirmTabChange: boolean;
    confirmationMessage: string | boolean;
    maxHorizontalMenuItems: number;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    horizontalNavbarRef: ({
        $: import('vue').ComponentInternalInstance;
        $data: {};
        $props: {
            readonly vuetifyOptions?: {
                [x: string]: {
                    [x: string]: unknown;
                };
            } | undefined;
            readonly items?: NavigationItem[] | undefined;
            readonly confirmTabChange?: boolean | undefined;
            readonly confirmationMessage?: string | boolean | undefined;
            readonly width?: string | undefined;
            readonly "onCancel-navigation"?: ((...args: any[]) => any) | undefined;
            readonly "onConfirm-tab-change"?: ((...args: any[]) => any) | undefined;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
        $attrs: import('vue').Attrs;
        $refs: {
            [x: string]: 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: "cancel-navigation", ...args: any[]) => void) & ((event: "confirm-tab-change", ...args: any[]) => void);
        $el: any;
        $options: import('vue').ComponentOptionsBase<Readonly<CustomizableOptions & {
            items?: NavigationItem[];
            confirmTabChange?: boolean;
            confirmationMessage?: string | boolean;
            width?: string;
        }> & Readonly<{
            "onCancel-navigation"?: ((...args: any[]) => any) | undefined;
            "onConfirm-tab-change"?: ((...args: any[]) => any) | undefined;
        }>, {
            resetTabSelection: () => {
                activeTab: number;
                activeItemIndex: number;
            };
        }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
            "cancel-navigation": (...args: any[]) => void;
            "confirm-tab-change": (...args: any[]) => void;
        }, string, {
            width: string;
            items: NavigationItem[];
            confirmTabChange: boolean;
            confirmationMessage: string | boolean;
        }, {}, 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<{
        width: string;
        items: NavigationItem[];
        confirmTabChange: boolean;
        confirmationMessage: string | boolean;
    }> & Omit<Readonly<CustomizableOptions & {
        items?: NavigationItem[];
        confirmTabChange?: boolean;
        confirmationMessage?: string | boolean;
        width?: string;
    }> & Readonly<{
        "onCancel-navigation"?: ((...args: any[]) => any) | undefined;
        "onConfirm-tab-change"?: ((...args: any[]) => any) | undefined;
    }>, "resetTabSelection" | ("width" | "items" | "confirmTabChange" | "confirmationMessage")> & {
        resetTabSelection: () => {
            activeTab: number;
            activeItemIndex: number;
        };
    } & {} & import('vue').ComponentCustomProperties & {} & {
        $slots: Readonly<{
            'navigation-bar-prepend': () => unknown;
            'navigation-bar-append': () => unknown;
            default: () => unknown;
        }> & {
            'navigation-bar-prepend': () => unknown;
            'navigation-bar-append': () => unknown;
            default: () => unknown;
        };
    }) | null;
}, HTMLElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
