import React, { ReactNode } from "react";
export interface SidebarMenuItem {
    id: string;
    label: string;
    icon: string | ReactNode;
    /** Path for direct link; omit when using children (collapsible group) */
    path?: string;
    exact?: boolean;
    onClick?: () => void;
    onMouseEnter?: () => void;
    onFocus?: () => void;
    /** Child items: renders as collapsible accordion section */
    children?: SidebarMenuItem[];
}
export interface SidebarFooterItem {
    id: string;
    label: string;
    icon: string | ReactNode;
    path?: string;
    onClick?: () => void;
    onMouseEnter?: () => void;
    onFocus?: () => void;
    variant?: "default" | "error";
}
export interface SidebarProps {
    /** Menu items to display in the sidebar */
    menuItems: SidebarMenuItem[];
    /** Footer items (e.g., Storage Settings, View Site, Logout) */
    footerItems?: SidebarFooterItem[];
    /** Current pathname for active state detection */
    currentPath: string;
    /** Whether sidebar is open (expanded) or closed (collapsed) */
    sidebarOpen?: boolean;
    /** Callback when sidebar toggle button is clicked */
    onSidebarToggle?: () => void;
    /** Custom header content (replaces default header) */
    headerContent?: ReactNode;
    /** Custom header title (used if headerContent is not provided) */
    headerTitle?: string;
    /** Custom className for sidebar */
    className?: string;
    /** Custom className for main content wrapper */
    mainContentClassName?: string;
    /** Width when sidebar is open (default: 200px) */
    openWidth?: string;
    /** Width when sidebar is closed (default: 80px) */
    closedWidth?: string;
    /** Optional content below footer items (e.g. version text) */
    footerExtra?: ReactNode;
}
export declare const Sidebar: React.FC<SidebarProps>;
export default Sidebar;
//# sourceMappingURL=index.d.ts.map