import type { FC, HTMLAttributeAnchorTarget, PropsWithChildren } from 'react';
import React from 'react';
interface AppSidebarPageItem {
    href?: string;
    target?: HTMLAttributeAnchorTarget;
    icon?: FC;
    label: string;
    items?: AppSidebarPageItem[];
    badge?: string;
    roles?: string[];
}
/**
 * Props for the AppSidebarContext
 * @interface AppSidebarContextProps
 * @property {Object} desktop - Desktop sidebar state and controls
 * @property {Object} mobile - Mobile sidebar state and controls
 * @property {AppSidebarPageItem[]} pages - Array of sidebar page items
 * @property {string} pathname - Current route pathname
 * @property {React.ElementType} linkComponent - Component used for navigation links
 */
interface AppSidebarContextProps {
    desktop: {
        isCollapsed: boolean;
        setCollapsed(value: boolean): void;
        toggle(): void;
    };
    mobile: {
        isOpen: boolean;
        close(): void;
        toggle(): void;
    };
    pages: AppSidebarPageItem[];
    pathname: string;
    linkComponent: React.ElementType;
}
/**
 * Props for the AppSidebarProvider component
 * @interface AppSidebarProviderProps
 * @property {boolean} initialCollapsed - Initial collapsed state of desktop sidebar
 * @property {AppSidebarPageItem[]} pages - Array of sidebar page items
 * @property {string} pathname - Current route pathname
 * @property {React.ElementType} linkComponent - Component used for navigation links
 * @property {ReactNode} children - Child components
 */
interface AppSidebarProviderProps extends PropsWithChildren {
    initialCollapsed: boolean;
    pages: AppSidebarPageItem[];
    pathname: string;
    linkComponent: React.ElementType;
}
/**
 * Provider component for sidebar state management
 * @param {AppSidebarProviderProps} props - Component props
 */
declare const AppSidebarProvider: ({ initialCollapsed, children, pages, pathname, linkComponent, }: AppSidebarProviderProps) => import("react/jsx-runtime").JSX.Element;
/**
 * Hook for accessing sidebar context
 * @throws {Error} When used outside AppSidebarProvider
 * @returns {AppSidebarContextProps} Sidebar context value
 */
declare const useAppSidebarContext: () => AppSidebarContextProps;
export default AppSidebarProvider;
export { useAppSidebarContext };
export type { AppSidebarContextProps, AppSidebarProviderProps, AppSidebarPageItem };
