import * as React from "react";
import { TooltipContent } from "./tooltip";
type SidebarContextProps = {
    state: "expanded" | "collapsed";
    open: boolean;
    setOpen: (open: boolean) => void;
    openMobile: boolean;
    setOpenMobile: (open: boolean) => void;
    isMobile: boolean;
    toggleSidebar: () => void;
};
/**
 * Returns the active sidebar context and enforces provider usage.
 *
 * @remarks
 * Must be called from within {@link SidebarProvider}. Exposes desktop and mobile
 * open state along with the shared toggle helper used by sidebar primitives.
 *
 * @example
 * ```tsx
 * const {open, toggleSidebar} = useSidebar();
 * ```
 *
 * @see {@link https://react.dev/reference/react/useContext | React useContext Docs}
 */
declare function useSidebar(): SidebarContextProps;
/**
 * Props for the sidebar provider.
 */
interface SidebarProviderProps extends React.ComponentProps<"div"> {
    /**
     * Initial uncontrolled open state for desktop layouts.
     * @default true
     */
    defaultOpen?: boolean;
    /**
     * Controlled open state for desktop layouts.
     * @default undefined
     */
    open?: boolean;
    /**
     * Callback invoked when the desktop open state changes.
     * @default undefined
     */
    onOpenChange?: (open: boolean) => void;
}
/**
 * Provides shared sidebar state, keyboard shortcuts, and responsive behavior.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built on shared React context and tooltip primitives
 * - Persists desktop collapse state to a cookie for cross-page continuity
 *
 * @example
 * ```tsx
 * <SidebarProvider>
 *   <Sidebar />
 * </SidebarProvider>
 * ```
 *
 * @see {@link https://react.dev/reference/react/useContext | React Context Docs}
 */
declare const SidebarProvider: React.ForwardRefExoticComponent<Omit<SidebarProviderProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Props for the root sidebar panel.
 */
type SidebarProps = React.ComponentProps<"div"> & {
    /**
     * Edge of the screen where the sidebar is rendered.
     * @default "left"
     */
    side?: "left" | "right";
    /**
     * Visual presentation style used for desktop rendering.
     * @default "sidebar"
     */
    variant?: "sidebar" | "floating" | "inset";
    /**
     * Desktop collapse behavior for the sidebar.
     * @default "offcanvas"
     */
    collapsible?: "offcanvas" | "icon" | "none";
};
/**
 * Renders the responsive sidebar panel for desktop and mobile layouts.
 *
 * @remarks
 * - Renders a `<div>` element on desktop and a dialog portal on mobile
 * - Built on the shared sidebar context
 *
 * @example
 * ```tsx
 * <Sidebar>
 *   <SidebarContent />
 * </Sidebar>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Roles/dialog_role | ARIA Dialog Role}
 */
declare const Sidebar: React.ForwardRefExoticComponent<Omit<SidebarProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders the primary button used to toggle the sidebar.
 *
 * @remarks
 * - Renders the shared `Button` component
 * - Built on the shared sidebar context
 *
 * @example
 * ```tsx
 * <SidebarTrigger />
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/button | HTML button element}
 */
declare const SidebarTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("./button").ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
/**
 * Renders a slim rail button used to toggle the sidebar collapsed state.
 *
 * @remarks
 * - Renders a `<button>` element
 * - Built on the shared sidebar context
 *
 * @example
 * ```tsx
 * <SidebarRail />
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/button | HTML button element}
 */
declare const SidebarRail: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
/**
 * Renders the inset main content region adjacent to the sidebar.
 *
 * @remarks
 * - Renders a `<main>` element
 * - Built as a layout helper for inset sidebar variants
 *
 * @example
 * ```tsx
 * <SidebarInset>Main content</SidebarInset>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/main | HTML main element}
 */
declare const SidebarInset: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders a styled input inside sidebar layouts.
 *
 * @remarks
 * - Renders the shared `Input` component
 * - Built for sidebar search and filtering affordances
 *
 * @example
 * ```tsx
 * <SidebarInput placeholder='Search...' />
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/input | HTML input element}
 */
declare const SidebarInput: React.ForwardRefExoticComponent<Omit<Omit<import("./input").InputProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
/**
 * Renders the header region of the sidebar.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built as a layout helper for branding or primary controls
 *
 * @example
 * ```tsx
 * <SidebarHeader>Workspace</SidebarHeader>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/div | HTML div element}
 */
declare const SidebarHeader: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders the footer region of the sidebar.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built as a layout helper for actions or account controls
 *
 * @example
 * ```tsx
 * <SidebarFooter>Footer content</SidebarFooter>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/div | HTML div element}
 */
declare const SidebarFooter: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders a separator between sidebar regions or menu groups.
 *
 * @remarks
 * - Renders the shared `Separator` component
 * - Built as a lightweight structural divider
 *
 * @example
 * ```tsx
 * <SidebarSeparator />
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/hr | HTML thematic break}
 */
declare const SidebarSeparator: React.ForwardRefExoticComponent<Omit<Omit<import("./separator").SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders the scrollable content region of the sidebar.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built as a layout helper for menu groups and custom content
 *
 * @example
 * ```tsx
 * <SidebarContent>
 *   <SidebarMenu />
 * </SidebarContent>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/div | HTML div element}
 */
declare const SidebarContent: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders a logical grouping container inside the sidebar.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built as a layout helper for related navigation sections
 *
 * @example
 * ```tsx
 * <SidebarGroup>
 *   <SidebarGroupLabel>Projects</SidebarGroupLabel>
 * </SidebarGroup>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/div | HTML div element}
 */
declare const SidebarGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Props for the sidebar group label.
 */
interface SidebarGroupLabelProps extends React.ComponentProps<"div"> {
    /**
     * Whether to merge props into the single child element instead of rendering a wrapper `<div>`.
     * @default false
     */
    asChild?: boolean;
}
/**
 * Renders the heading label for a sidebar group.
 *
 * @remarks
 * - Renders a `<div>` element by default
 * - Supports `asChild` composition for custom markup
 *
 * @example
 * ```tsx
 * <SidebarGroupLabel>Projects</SidebarGroupLabel>
 * ```
 *
 * @see {@link https://react.dev/reference/react/cloneElement | React cloneElement Docs}
 */
declare const SidebarGroupLabel: React.ForwardRefExoticComponent<Omit<SidebarGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Props for the sidebar group action button.
 */
interface SidebarGroupActionProps extends React.ComponentProps<"button"> {
    /**
     * Whether to merge props into the single child element instead of rendering a wrapper `<button>`.
     * @default false
     */
    asChild?: boolean;
}
/**
 * Renders a secondary action aligned with a sidebar group heading.
 *
 * @remarks
 * - Renders a `<button>` element by default
 * - Supports `asChild` composition for custom controls
 *
 * @example
 * ```tsx
 * <SidebarGroupAction aria-label='Add project'>+</SidebarGroupAction>
 * ```
 *
 * @see {@link https://react.dev/reference/react/cloneElement | React cloneElement Docs}
 */
declare const SidebarGroupAction: React.ForwardRefExoticComponent<Omit<SidebarGroupActionProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
/**
 * Renders the content container for a sidebar group.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built as a structural wrapper for nested menu items or custom content
 *
 * @example
 * ```tsx
 * <SidebarGroupContent>
 *   <SidebarMenu />
 * </SidebarGroupContent>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/div | HTML div element}
 */
declare const SidebarGroupContent: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders the root sidebar navigation list.
 *
 * @remarks
 * - Renders a `<ul>` element
 * - Built as the primary menu container for sidebar navigation
 *
 * @example
 * ```tsx
 * <SidebarMenu>
 *   <SidebarMenuItem />
 * </SidebarMenu>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/ul | HTML ul element}
 */
declare const SidebarMenu: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
/**
 * Renders a single list item within the sidebar menu.
 *
 * @remarks
 * - Renders an `<li>` element
 * - Built as a structural wrapper for menu buttons and actions
 *
 * @example
 * ```tsx
 * <SidebarMenuItem>
 *   <SidebarMenuButton>Dashboard</SidebarMenuButton>
 * </SidebarMenuItem>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/li | HTML li element}
 */
declare const SidebarMenuItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
declare const sidebarMenuButtonVariantStyles: {
    readonly default: string;
    readonly outline: string;
};
declare const sidebarMenuButtonSizeStyles: {
    readonly default: string;
    readonly sm: string;
    readonly lg: string;
};
/**
 * Props for the sidebar menu button.
 */
interface SidebarMenuButtonProps extends React.ComponentProps<"button"> {
    /**
     * Whether to merge props into the single child element instead of rendering a wrapper `<button>`.
     * @default false
     */
    asChild?: boolean;
    /**
     * Whether the menu item should be styled as active.
     * @default false
     */
    isActive?: boolean;
    /**
     * Tooltip content displayed when the sidebar is collapsed on desktop.
     * @default undefined
     */
    tooltip?: string | React.ComponentProps<typeof TooltipContent>;
    /**
     * Visual style variant for the menu button.
     * @default "default"
     */
    variant?: keyof typeof sidebarMenuButtonVariantStyles;
    /**
     * Size preset for the menu button.
     * @default "default"
     */
    size?: keyof typeof sidebarMenuButtonSizeStyles;
}
/**
 * Renders the primary interactive element for a sidebar menu item.
 *
 * @remarks
 * - Renders a `<button>` element by default
 * - Supports `asChild` composition and contextual tooltips when collapsed
 *
 * @example
 * ```tsx
 * <SidebarMenuButton isActive>Dashboard</SidebarMenuButton>
 * ```
 *
 * @see {@link https://react.dev/reference/react/cloneElement | React cloneElement Docs}
 */
declare const SidebarMenuButton: React.ForwardRefExoticComponent<Omit<SidebarMenuButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
/**
 * Props for the sidebar menu action button.
 */
interface SidebarMenuActionProps extends React.ComponentProps<"button"> {
    /**
     * Whether to merge props into the single child element instead of rendering a wrapper `<button>`.
     * @default false
     */
    asChild?: boolean;
    /**
     * Whether the action should remain hidden until its parent item is hovered.
     * @default false
     */
    showOnHover?: boolean;
}
/**
 * Renders a secondary action button aligned within a sidebar menu item.
 *
 * @remarks
 * - Renders a `<button>` element by default
 * - Supports `asChild` composition for custom controls
 *
 * @example
 * ```tsx
 * <SidebarMenuAction showOnHover>⋯</SidebarMenuAction>
 * ```
 *
 * @see {@link https://react.dev/reference/react/cloneElement | React cloneElement Docs}
 */
declare const SidebarMenuAction: React.ForwardRefExoticComponent<Omit<SidebarMenuActionProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
/**
 * Renders a badge alongside a sidebar menu item.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built as a lightweight presentational helper for counts and statuses
 *
 * @example
 * ```tsx
 * <SidebarMenuBadge>3</SidebarMenuBadge>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/div | HTML div element}
 */
declare const SidebarMenuBadge: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Props for the sidebar menu skeleton.
 */
interface SidebarMenuSkeletonProps extends React.ComponentProps<"div"> {
    /**
     * Whether to render a leading skeleton icon placeholder.
     * @default false
     */
    showIcon?: boolean;
}
/**
 * Renders a loading placeholder for sidebar menu items.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built from shared `Skeleton` primitives
 *
 * @example
 * ```tsx
 * <SidebarMenuSkeleton showIcon />
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/div | HTML div element}
 */
declare const SidebarMenuSkeleton: React.ForwardRefExoticComponent<Omit<SidebarMenuSkeletonProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders a nested menu list within the sidebar.
 *
 * @remarks
 * - Renders a `<ul>` element
 * - Built for multi-level navigation structures
 *
 * @example
 * ```tsx
 * <SidebarMenuSub>
 *   <SidebarMenuSubItem />
 * </SidebarMenuSub>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/ul | HTML ul element}
 */
declare const SidebarMenuSub: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
/**
 * Renders a single nested sidebar menu list item.
 *
 * @remarks
 * - Renders an `<li>` element
 * - Built as a structural wrapper for nested menu links
 *
 * @example
 * ```tsx
 * <SidebarMenuSubItem />
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/li | HTML li element}
 */
declare const SidebarMenuSubItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
/**
 * Props for the sidebar nested menu button.
 */
interface SidebarMenuSubButtonProps extends React.ComponentProps<"a"> {
    /**
     * Whether to merge props into the single child element instead of rendering a wrapper `<a>`.
     * @default false
     */
    asChild?: boolean;
    /**
     * Size preset for the nested menu link.
     * @default "md"
     */
    size?: "sm" | "md";
    /**
     * Whether the nested menu item should be styled as active.
     * @default undefined
     */
    isActive?: boolean;
}
/**
 * Renders a nested sidebar menu link.
 *
 * @remarks
 * - Renders an `<a>` element by default
 * - Supports `asChild` composition for custom link components
 *
 * @example
 * ```tsx
 * <SidebarMenuSubButton href='/settings/profile'>Profile</SidebarMenuSubButton>
 * ```
 *
 * @see {@link https://react.dev/reference/react/cloneElement | React cloneElement Docs}
 */
declare const SidebarMenuSubButton: React.ForwardRefExoticComponent<Omit<SidebarMenuSubButtonProps, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
//# sourceMappingURL=sidebar.d.ts.map