import { ReactNode, HTMLAttributes } from 'react';
interface NavigationContextValue {
    /** Navigate to a page by its `tag`. Pushes onto the stack. */
    navigate: (tag: string) => void;
    /** Go back one page. No-op if already at the root. */
    pop: () => void;
    /** `true` when there is at least one page to go back to. */
    canGoBack: boolean;
    /** Tag of the currently visible page. */
    currentTag: string;
    /** Direction of the last transition (`"forward"` or `"back"`). */
    direction: "forward" | "back";
}
/** Access the nearest `NavigationView`'s navigation functions. */
export declare function useNavigation(): NavigationContextValue;
export interface NavigationPageProps extends HTMLAttributes<HTMLDivElement> {
    /** Unique identifier used with `navigate()`. */
    tag: string;
    /** Page heading shown in a `HeaderBar`-style title bar. */
    title: string;
    children?: ReactNode;
}
/**
 * A single page inside a `NavigationView`.
 * Only visible when its `tag` matches the current page in the stack.
 */
export declare function NavigationPage({ tag, title, children, className, ...props }: NavigationPageProps): import("react/jsx-runtime").JSX.Element | null;
export interface NavigationViewProps extends HTMLAttributes<HTMLDivElement> {
    /** Tag of the first page to show. */
    initialPage: string;
    children?: ReactNode;
}
/**
 * Single-pane push/pop navigation stack.
 *
 * Mirrors `AdwNavigationView` — the mobile-first counterpart to
 * `NavigationSplitView`. Each "screen" is a `NavigationPage` with a unique
 * `tag`. Use `useNavigation()` inside pages to call `navigate(tag)` and `pop()`.
 *
 * @example
 * ```tsx
 * <NavigationView initialPage="home">
 *   <NavigationPage tag="home" title="Home">
 *     <Button onClick={() => navigate("details")}>Open</Button>
 *   </NavigationPage>
 *   <NavigationPage tag="details" title="Details">
 *     <Button onClick={pop}>Back</Button>
 *   </NavigationPage>
 * </NavigationView>
 * ```
 *
 * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.NavigationView.html
 */
export declare function NavigationView({ initialPage, children, className, ...props }: NavigationViewProps): import("react/jsx-runtime").JSX.Element;
export {};
