import { useRender } from '@base-ui/react/use-render';
import { VariantProps } from 'class-variance-authority';
import { Button } from './button';
import { Input } from './input';
import { Separator } from './separator';
import { TooltipContent } from './tooltip';
import * as React from "react";
type SidebarContextProps = {
    state: "expanded" | "collapsed";
    open: boolean;
    setOpen: (open: boolean) => void;
    openMobile: boolean;
    setOpenMobile: (open: boolean) => void;
    isMobile: boolean;
    toggleSidebar: () => void;
};
/**
 * Hook to access sidebar context including state, mobile state, and toggle functions.
 * Must be used within SidebarProvider.
 */
declare function useSidebar(): SidebarContextProps;
type SidebarProviderProps = React.ComponentProps<"div"> & {
    /** Initial open state on desktop. @default true */
    defaultOpen?: boolean;
    /** Controlled open state for desktop. */
    open?: boolean;
    /** Callback when open state changes. Persists state in cookie. */
    onOpenChange?: (open: boolean) => void;
};
/**
 * Root provider for sidebar with state management, keyboard shortcuts (⌘B), and mobile detection.
 * Manages collapsed/expanded state and persists preference in cookie.
 */
declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: SidebarProviderProps): import("react/jsx-runtime").JSX.Element;
type SidebarProps = React.ComponentProps<"div"> & {
    /** Which side to display sidebar. @default "left" */
    side?: "left" | "right";
    /** Visual variant. @default "sidebar" */
    variant?: "sidebar" | "floating" | "inset";
    /** Collapse behavior. @default "offcanvas" */
    collapsible?: "offcanvas" | "icon" | "none";
};
/**
 * Sidebar container with responsive behavior. Renders as Sheet on mobile.
 * Use with SidebarProvider for state management.
 */
declare function Sidebar({ side, variant, collapsible, className, children, ...props }: SidebarProps): import("react/jsx-runtime").JSX.Element;
type SidebarTriggerProps = React.ComponentProps<typeof Button>;
/**
 * Button to toggle sidebar open/closed. Shows hamburger icon.
 */
declare function SidebarTrigger({ className, onClick, ...props }: SidebarTriggerProps): import("react/jsx-runtime").JSX.Element;
type SidebarRailProps = React.ComponentProps<"button">;
/**
 * Invisible rail element on sidebar edge for drag-to-resize interaction.
 */
declare function SidebarRail({ className, ...props }: SidebarRailProps): import("react/jsx-runtime").JSX.Element;
type SidebarInsetProps = React.ComponentProps<"main">;
/**
 * Main content area that sits beside the sidebar. Automatically adjusts margins based on sidebar state.
 */
declare function SidebarInset({ className, ...props }: SidebarInsetProps): import("react/jsx-runtime").JSX.Element;
type SidebarInputProps = React.ComponentProps<typeof Input>;
/**
 * Styled input for sidebar search/filter functionality.
 */
declare function SidebarInput({ className, ...props }: SidebarInputProps): import("react/jsx-runtime").JSX.Element;
type SidebarHeaderProps = React.ComponentProps<"div">;
/**
 * Top section of sidebar for branding, app switcher, or global actions.
 */
declare function SidebarHeader({ className, ...props }: SidebarHeaderProps): import("react/jsx-runtime").JSX.Element;
type SidebarFooterProps = React.ComponentProps<"div">;
/**
 * Bottom section of sidebar for user profile, settings, or secondary actions.
 */
declare function SidebarFooter({ className, ...props }: SidebarFooterProps): import("react/jsx-runtime").JSX.Element;
type SidebarSeparatorProps = React.ComponentProps<typeof Separator>;
/**
 * Horizontal divider between sidebar sections.
 */
declare function SidebarSeparator({ className, ...props }: SidebarSeparatorProps): import("react/jsx-runtime").JSX.Element;
type SidebarContentProps = React.ComponentProps<"div">;
/**
 * Scrollable main content area of sidebar. Contains SidebarGroup components.
 */
declare function SidebarContent({ className, ...props }: SidebarContentProps): import("react/jsx-runtime").JSX.Element;
type SidebarGroupProps = React.ComponentProps<"div">;
/**
 * Container for grouped menu items with optional label.
 */
declare function SidebarGroup({ className, ...props }: SidebarGroupProps): import("react/jsx-runtime").JSX.Element;
type SidebarGroupLabelProps = useRender.ComponentProps<"div"> & React.ComponentProps<"div">;
/**
 * Label heading for a sidebar group. Fades out when sidebar collapses to icon mode.
 */
declare function SidebarGroupLabel({ className, render, ...props }: SidebarGroupLabelProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
type SidebarGroupActionProps = useRender.ComponentProps<"button"> & React.ComponentProps<"button">;
/**
 * Action button displayed in top-right of group (e.g., add, expand all).
 */
declare function SidebarGroupAction({ className, render, ...props }: SidebarGroupActionProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
type SidebarGroupContentProps = React.ComponentProps<"div">;
/**
 * Container for menu items within a group.
 */
declare function SidebarGroupContent({ className, ...props }: SidebarGroupContentProps): import("react/jsx-runtime").JSX.Element;
type SidebarMenuProps = React.ComponentProps<"ul">;
/**
 * Unordered list container for sidebar menu items.
 */
declare function SidebarMenu({ className, ...props }: SidebarMenuProps): import("react/jsx-runtime").JSX.Element;
type SidebarMenuItemProps = React.ComponentProps<"li">;
/**
 * List item wrapper for a single menu entry.
 */
declare function SidebarMenuItem({ className, ...props }: SidebarMenuItemProps): import("react/jsx-runtime").JSX.Element;
declare const sidebarMenuButtonVariants: (props?: ({
    variant?: "default" | "outline" | null | undefined;
    size?: "default" | "sm" | "lg" | null | undefined;
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
type SidebarMenuButtonProps = useRender.ComponentProps<"button"> & React.ComponentProps<"button"> & {
    /** Mark as active/current page. */
    isActive?: boolean;
    /** Tooltip content shown when sidebar is collapsed. */
    tooltip?: string | React.ComponentProps<typeof TooltipContent>;
} & VariantProps<typeof sidebarMenuButtonVariants>;
/**
 * Clickable button for sidebar menu item. Supports variants, sizes, active state, and tooltips.
 */
declare function SidebarMenuButton({ render, isActive, variant, size, tooltip, className, ...props }: SidebarMenuButtonProps): import("react/jsx-runtime").JSX.Element;
type SidebarMenuActionProps = useRender.ComponentProps<"button"> & React.ComponentProps<"button"> & {
    /** Only show on hover/focus. @default false */
    showOnHover?: boolean;
};
/**
 * Secondary action button for menu item (e.g., delete, edit). Positioned on right side.
 */
declare function SidebarMenuAction({ className, render, showOnHover, ...props }: SidebarMenuActionProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
type SidebarMenuBadgeProps = React.ComponentProps<"div">;
/**
 * Badge/counter displayed on right side of menu item (e.g., notification count).
 */
declare function SidebarMenuBadge({ className, ...props }: SidebarMenuBadgeProps): import("react/jsx-runtime").JSX.Element;
type SidebarMenuSkeletonProps = React.ComponentProps<"div"> & {
    /** Show icon skeleton. @default false */
    showIcon?: boolean;
};
/**
 * Loading skeleton placeholder for menu item with randomized width.
 */
declare function SidebarMenuSkeleton({ className, showIcon, ...props }: SidebarMenuSkeletonProps): import("react/jsx-runtime").JSX.Element;
type SidebarMenuSubProps = React.ComponentProps<"ul">;
/**
 * Nested submenu list with indented border. Place inside SidebarMenuItem.
 */
declare function SidebarMenuSub({ className, ...props }: SidebarMenuSubProps): import("react/jsx-runtime").JSX.Element;
type SidebarMenuSubItemProps = React.ComponentProps<"li">;
/**
 * List item wrapper for submenu entry.
 */
declare function SidebarMenuSubItem({ className, ...props }: SidebarMenuSubItemProps): import("react/jsx-runtime").JSX.Element;
type SidebarMenuSubButtonProps = useRender.ComponentProps<"a"> & React.ComponentProps<"a"> & {
    /** Size variant. @default "md" */
    size?: "sm" | "md";
    /** Mark as active/current page. */
    isActive?: boolean;
};
/**
 * Link button for submenu item. Defaults to anchor tag.
 */
declare function SidebarMenuSubButton({ render, size, isActive, className, ...props }: SidebarMenuSubButtonProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
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, type SidebarProps, type SidebarContentProps, type SidebarFooterProps, type SidebarGroupProps, type SidebarGroupActionProps, type SidebarGroupContentProps, type SidebarGroupLabelProps, type SidebarHeaderProps, type SidebarInputProps, type SidebarInsetProps, type SidebarMenuProps, type SidebarMenuActionProps, type SidebarMenuBadgeProps, type SidebarMenuButtonProps, type SidebarMenuItemProps, type SidebarMenuSkeletonProps, type SidebarMenuSubProps, type SidebarMenuSubButtonProps, type SidebarMenuSubItemProps, type SidebarProviderProps, type SidebarRailProps, type SidebarSeparatorProps, type SidebarTriggerProps, };
//# sourceMappingURL=sidebar.d.ts.map