import * as React from "react"; export type SidebarItem = { key: string; label: React.ReactNode; icon?: React.ReactNode; href?: string; items?: SidebarItem[]; active?: boolean; disabled?: boolean; badge?: React.ReactNode; hidden?: boolean; sectionLabel?: React.ReactNode; defaultExpanded?: boolean; expanded?: boolean; onExpandedChange?: (expanded: boolean) => void; current?: React.AriaAttributes["aria-current"]; tooltip?: React.ReactNode; onSelect?: () => void; keywords?: string[]; action?: React.ReactNode; actionLabel?: string; onAction?: () => void; }; export type SidebarSearch = { value?: string; defaultValue?: string; placeholder?: string; label?: string; onValueChange?: (value: string) => void; empty?: React.ReactNode; }; export type SidebarFooterAccount = { label: React.ReactNode; description?: React.ReactNode; avatar?: React.ReactNode; href?: string; tooltip?: React.ReactNode; onSelect?: () => void; }; export type SidebarProps = React.ComponentProps<"aside"> & { header?: React.ReactNode; footer?: React.ReactNode; items?: SidebarItem[]; collapsed?: boolean; defaultCollapsed?: boolean; onCollapsedChange?: (collapsed: boolean) => void; variant?: "sidebar" | "floating" | "inset"; side?: "left" | "right"; collapsible?: "icon" | "offcanvas" | "none"; width?: React.CSSProperties["width"]; collapsedWidth?: React.CSSProperties["width"]; mobileWidth?: React.CSSProperties["width"]; collapsedRail?: React.ReactNode; railItems?: SidebarItem[]; footerAccount?: SidebarFooterAccount; secondaryActions?: SidebarItem[]; footerSecondary?: React.ReactNode; tooltipOnCollapsed?: boolean; showSectionLabels?: boolean; itemSize?: "sm" | "md" | "lg"; activeIndicator?: "none" | "bar" | "pill"; navigationLabel?: string; search?: SidebarSearch | React.ReactNode; hideScrollbar?: boolean; keyboardShortcut?: string | false; persistKey?: string; responsive?: boolean; mobileBreakpoint?: number; mobileOpen?: boolean; defaultMobileOpen?: boolean; onMobileOpenChange?: (open: boolean) => void; mobileTitle?: React.ReactNode; mobileDescription?: React.ReactNode; mobileToggleLabel?: string; mobileCloseLabel?: string; mobileToggleIcon?: React.ReactNode; showMobileToggle?: boolean; closeOnSelect?: boolean; mobileToggleClassName?: string; mobilePanelClassName?: string; mobileOverlayClassName?: string; footerClassName?: string; renderMobileToggle?: (state: { open: boolean; setOpen: (open: boolean) => void; }) => React.ReactNode; onItemSelect?: (item: SidebarItem) => void; renderItem?: (item: SidebarItem, state: { collapsed: boolean; }) => React.ReactNode; renderLink?: (props: React.ComponentProps<"a"> & { item: SidebarItem; [key: `data-${string}`]: string | boolean | undefined; }) => React.ReactNode; }; declare function Sidebar({ className, header, footer, items, collapsed: collapsedProp, defaultCollapsed, onCollapsedChange, variant, side, collapsible, width, collapsedWidth, mobileWidth, collapsedRail, railItems, footerAccount, secondaryActions, footerSecondary, tooltipOnCollapsed, showSectionLabels, itemSize, activeIndicator, navigationLabel, search, hideScrollbar, keyboardShortcut, persistKey, responsive, mobileBreakpoint, mobileOpen: mobileOpenProp, defaultMobileOpen, onMobileOpenChange, mobileTitle, mobileDescription, mobileToggleLabel, mobileCloseLabel, mobileToggleIcon, showMobileToggle, closeOnSelect, mobileToggleClassName, mobilePanelClassName, mobileOverlayClassName, renderMobileToggle, onItemSelect, renderItem, renderLink, children, ...props }: SidebarProps): React.JSX.Element; declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): React.JSX.Element; export { Sidebar, SidebarInset };