import React from "react";
import { Button, type ButtonProps } from "../Button";
import { type SidebarMenuButtonVariantProps, type SidebarMenuSubButtonVariantProps } from "./variants";
declare const SIDEBAR_WIDTH = "16rem";
declare const SIDEBAR_WIDTH_MOBILE = "18rem";
declare const SIDEBAR_WIDTH_ICON = "3.5rem";
type SidebarTheme = "light" | "dark";
type SidebarVariant = "sidebar" | "floating" | "inset";
type SidebarSide = "left" | "right";
type SidebarCollapsible = "offcanvas" | "icon" | "none";
type SidebarStateValue = "expanded" | "collapsed";
type SidebarContextValue = {
    state: SidebarStateValue;
    open: boolean;
    setOpen: (value: boolean | ((value: boolean) => boolean)) => void;
    openMobile: boolean;
    setOpenMobile: (value: boolean | ((value: boolean) => boolean)) => void;
    isMobile: boolean;
    toggleSidebar: () => void;
    theme: SidebarTheme;
    side: SidebarSide;
    variant: SidebarVariant;
    collapsible: SidebarCollapsible;
    isIconCollapsed: boolean;
    showRail: boolean;
};
export interface SidebarProviderProps extends React.HTMLAttributes<HTMLDivElement> {
    defaultOpen?: boolean;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    theme?: SidebarTheme;
    side?: SidebarSide;
    variant?: SidebarVariant;
    collapsible?: SidebarCollapsible;
    showRail?: boolean;
    style?: React.CSSProperties;
}
export declare const SidebarProvider: React.ForwardRefExoticComponent<SidebarProviderProps & React.RefAttributes<HTMLDivElement>>;
export declare function useSidebar(): SidebarContextValue;
export interface SidebarProps extends React.HTMLAttributes<HTMLElement> {
    theme?: SidebarTheme;
    side?: SidebarSide;
    variant?: SidebarVariant;
    collapsible?: SidebarCollapsible;
}
export declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLElement>>;
export declare const SidebarOverlay: React.FC;
export declare const SidebarRail: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
export declare const SidebarContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarSeparator: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarGroupLabel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarGroupAction: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
export declare const SidebarGroupContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export interface SidebarMenuItemProps extends React.HTMLAttributes<HTMLLIElement> {
    collapsible?: boolean;
    defaultOpen?: boolean;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    disabled?: boolean;
}
export declare const SidebarMenuItem: React.ForwardRefExoticComponent<SidebarMenuItemProps & React.RefAttributes<HTMLLIElement>>;
export interface SidebarMenuButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    size?: SidebarMenuButtonVariantProps["size"];
    variant?: SidebarMenuButtonVariantProps["variant"];
    isActive?: boolean;
    icon?: React.ReactNode;
    tooltip?: React.ReactNode;
    collapsedIconVariant?: ButtonProps["variant"];
    collapsedIconActiveVariant?: ButtonProps["variant"];
}
export declare const SidebarMenuButton: React.ForwardRefExoticComponent<SidebarMenuButtonProps & React.RefAttributes<HTMLButtonElement>>;
export declare const SidebarMenu: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLUListElement> & React.RefAttributes<HTMLUListElement>>;
export declare const SidebarMenuAction: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
export declare const SidebarMenuBadge: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarMenuSkeleton: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
    showIcon?: boolean | undefined;
} & React.RefAttributes<HTMLDivElement>>;
export declare const SidebarMenuSub: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLUListElement> & React.RefAttributes<HTMLUListElement>>;
export declare const SidebarMenuSubItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLLIElement> & React.RefAttributes<HTMLLIElement>>;
export interface SidebarMenuSubButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    isActive?: boolean;
    size?: SidebarMenuSubButtonVariantProps["size"];
}
export declare const SidebarMenuSubButton: React.ForwardRefExoticComponent<SidebarMenuSubButtonProps & React.RefAttributes<HTMLButtonElement>>;
export declare const SidebarMenuSubAction: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
export interface SidebarTriggerProps extends React.ComponentProps<typeof Button> {
    icon?: React.ReactNode;
}
export declare const SidebarTrigger: React.ForwardRefExoticComponent<Omit<SidebarTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
export declare const SidebarInput: React.ForwardRefExoticComponent<Omit<import("../Input").InputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
export declare const SidebarInset: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
export { SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON, SIDEBAR_WIDTH_MOBILE, };
