/**
 * @license
 * Copyright 2025 Sandlada & Kai Orion
 * SPDX-License-Identifier: MIT
 */
import { type SlotsType } from 'vue';
import { type INavigationAnimation } from './animations';
import { NavigationDrawerController } from './navigation-drawer-controller';
import { type TNavigationDrawerSlots } from './navigation-drawer.definition';
import { ENavigationDrawerState } from './navigation-state';
export declare const NavigationDrawer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    readonly modal: {
        readonly default: true;
        readonly type: import("vue").PropType<boolean>;
    };
    readonly defaultOpen: {
        readonly default: false;
        readonly type: import("vue").PropType<boolean>;
    };
    readonly modelValue: {
        readonly default: null;
        readonly type: import("vue").PropType<boolean>;
    };
}>, {}, {
    animationController: null | AbortController;
    open: boolean;
    opening: boolean;
    nextClickIsFromContent: boolean;
    escapePressedWithoutCancel: boolean;
    isAtScrollTop: boolean;
    isAtScrollBottom: boolean;
    intersectionObserver: null | IntersectionObserver;
    controller: null | NavigationDrawerController;
}, {
    isOpen: {
        get(): boolean;
        set(value: boolean): void;
    };
}, {
    getDialogElement(): HTMLDialogElement;
    getScrimElement(): HTMLSpanElement;
    getContainerElement(): HTMLElement;
    getScrollerElement(): HTMLElement;
    getTopAnchorElement(): HTMLElement;
    getBottomAnchorElement(): HTMLElement;
    setRootAttribute(state: ENavigationDrawerState): void;
    handleRequestRoute(e: CustomEvent<{
        element: HTMLElement;
    }>): void;
    handleClose(e: Event): void;
    handleCancel(e: Event): void;
    handleContentClick(): void;
    handleDialogClick(): void;
    handleKeydown(event: KeyboardEvent): void;
    handleAnchorIntersection(entry: IntersectionObserverEntry): void;
    show(): Promise<void>;
    close(): Promise<void>;
    animateDialog(animation: INavigationAnimation): Promise<void>;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("submit" | "cancel" | "close" | "update:modelValue" | "open" | "opend" | "closed")[], "submit" | "cancel" | "close" | "update:modelValue" | "open" | "opend" | "closed", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    readonly modal: {
        readonly default: true;
        readonly type: import("vue").PropType<boolean>;
    };
    readonly defaultOpen: {
        readonly default: false;
        readonly type: import("vue").PropType<boolean>;
    };
    readonly modelValue: {
        readonly default: null;
        readonly type: import("vue").PropType<boolean>;
    };
}>> & Readonly<{
    onSubmit?: ((...args: any[]) => any) | undefined;
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
    onCancel?: ((...args: any[]) => any) | undefined;
    onClose?: ((...args: any[]) => any) | undefined;
    onOpen?: ((...args: any[]) => any) | undefined;
    onOpend?: ((...args: any[]) => any) | undefined;
    onClosed?: ((...args: any[]) => any) | undefined;
}>, {
    readonly modelValue: boolean;
    readonly defaultOpen: boolean;
    readonly modal: boolean;
}, SlotsType<TNavigationDrawerSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
//# sourceMappingURL=navigation-drawer.d.ts.map