interface SidebarItem {
    label: string;
    href: string;
    icon?: string;
    /** Roles required to see this item */
    roles?: string[];
    /** Nested items */
    children?: SidebarItem[];
}
interface SidebarSection {
    title?: string;
    items: SidebarItem[];
}
interface SidebarProps {
    sections?: SidebarSection[];
    currentPath?: string;
    collapsed?: boolean;
    userRoles?: string[];
}
interface SidebarAPI {
    ariaProps: Record<string, string>;
    isActive: (href: string) => boolean;
    isVisible: (item: SidebarItem) => boolean;
    itemAriaProps: (href: string) => Record<string, string>;
    visibleSections: SidebarSection[];
}
declare function createSidebar(props?: SidebarProps): SidebarAPI;

declare const sidebarVariants: (props?: ({
    collapsed?: "true" | "false" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const sidebarItemVariants: (props?: ({
    active?: "true" | "false" | undefined;
} & {
    className?: string;
}) | undefined) => string;

export { type SidebarAPI, type SidebarItem, type SidebarProps, type SidebarSection, createSidebar, sidebarItemVariants, sidebarVariants };
