import { HTMLAttributes, ReactNode } from 'react';
interface ViewSwitcherSidebarContextValue {
    value: string;
    onValueChange: (value: string) => void;
    collapsed: boolean;
}
export declare function useViewSwitcherSidebar(): ViewSwitcherSidebarContextValue;
export interface ViewSwitcherSidebarProps extends HTMLAttributes<HTMLElement> {
    /** Name of the currently active view. */
    value: string;
    /** Called with the new view name when the user selects an item. */
    onValueChange: (value: string) => void;
    /** Accessible label for the group. Defaults to `"Views"`. */
    "aria-label"?: string;
    /**
     * When `true`, items render icon-only (labels hidden) and the sidebar
     * shrinks to its compact width. Used by `AdaptiveLayout` on tablet viewports.
     */
    collapsed?: boolean;
    /** Rendered above the scrollable item list (e.g. user card). */
    header?: ReactNode;
    /** Rendered below the scrollable item list (e.g. collapse toggle). */
    footer?: ReactNode;
    children?: ReactNode;
}
/**
 * Sidebar-style view switcher for apps with more than 4 top-level views,
 * or when the sidebar layout fits better than a header-bar `ViewSwitcher`.
 *
 * Mirrors `AdwViewSwitcherSidebar` (libadwaita 1.9 / GNOME 50), the modern
 * replacement for `GtkStackSidebar`.
 *
 * Compose with `ViewSwitcherSidebarItem` for each view. The active item is
 * highlighted with the accent colour; keyboard ↑ / ↓ cycles through items.
 *
 * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherSidebar.html
 *
 * @example
 * ```tsx
 * <ViewSwitcherSidebar value={view} onValueChange={setView}>
 *   <ViewSwitcherSidebarItem name="photos" label="Photos" icon={MediaPlay} />
 *   <ViewSwitcherSidebarItem name="albums" label="Albums" icon={Star} count={12} />
 * </ViewSwitcherSidebar>
 * ```
 */
export declare function ViewSwitcherSidebar({ value, onValueChange, "aria-label": ariaLabel, collapsed, header, footer, children, className, ...props }: ViewSwitcherSidebarProps): import("react/jsx-runtime").JSX.Element;
export {};
