import { CollapsibleContentProps, CollapsibleTriggerProps } from "../ui/collapsible.js";
import { ScrollArea, ScrollViewport } from "../ui/scroll-area.js";
import { LinkProps } from "fumadocs-core/link";
import { ComponentProps, PointerEvent, ReactNode, RefObject } from "react";
declare namespace base_d_exports {
  export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, useAutoScroll, useFolder, useFolderDepth, useSidebar };
}
interface SidebarContext {
  open: boolean;
  setOpen: React.Dispatch<React.SetStateAction<boolean>>;
  collapsed: boolean;
  setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;
  /**
   * When set to false, don't close the sidebar when navigate to another page
   */
  closeOnRedirect: RefObject<boolean>;
  defaultOpenLevel: number;
  prefetch?: boolean;
  mode: Mode;
}
interface SidebarProviderProps {
  /**
   * Open folders by default if their level is lower or equal to a specific level
   * (Starting from 1)
   *
   * @defaultValue 0
   */
  defaultOpenLevel?: number;
  /**
   * Prefetch links, default behaviour depends on your React.js framework.
   */
  prefetch?: boolean;
  children?: ReactNode;
}
type Mode = 'drawer' | 'full';
declare const SidebarContext: import("react").Context<SidebarContext | null>;
declare function SidebarProvider({ defaultOpenLevel, prefetch, children }: SidebarProviderProps): import("react").JSX.Element;
declare function useSidebar(): SidebarContext;
declare function useFolder(): {
  open: boolean;
  setOpen: React.Dispatch<React.SetStateAction<boolean>>;
  depth: number;
  collapsible: boolean;
} | null;
declare function useFolderDepth(): number;
declare function SidebarContent({ mode: allowedMode, children }: {
  mode?: Mode | true;
  children: (state: {
    ref: RefObject<HTMLElement | null>;
    collapsed: boolean;
    hovered: boolean;
    onPointerEnter: (event: PointerEvent) => void;
    onPointerLeave: (event: PointerEvent) => void;
  }) => ReactNode;
}): ReactNode;
declare function SidebarViewport({ area, viewport, children }: {
  area?: ComponentProps<typeof ScrollArea>;
  viewport?: ComponentProps<typeof ScrollViewport>;
  children: ReactNode;
}): import("react").JSX.Element;
declare function SidebarDrawerOverlay(props: ComponentProps<'div'>): import("react").JSX.Element | undefined;
declare function SidebarDrawerContent({ className, children, ...props }: ComponentProps<'aside'>): import("react").JSX.Element | undefined;
declare function SidebarSeparator(props: ComponentProps<'p'>): import("react").JSX.Element;
declare function SidebarItem({ icon, active, children, ...props }: LinkProps & {
  active?: boolean;
  icon?: ReactNode;
}): import("react").JSX.Element;
declare function SidebarFolder({ defaultOpen: defaultOpenProp, collapsible, active, children, ...props }: ComponentProps<'div'> & {
  active?: boolean;
  defaultOpen?: boolean;
  collapsible?: boolean;
}): import("react").JSX.Element;
declare function SidebarFolderTrigger({ children, ...props }: CollapsibleTriggerProps): import("react").JSX.Element;
declare function SidebarFolderLink({ children, active, ...props }: LinkProps & {
  active?: boolean;
}): import("react").JSX.Element;
declare function SidebarFolderContent(props: CollapsibleContentProps): import("react").JSX.Element;
declare function SidebarTrigger({ children, ...props }: ComponentProps<'button'>): import("react").JSX.Element;
declare function SidebarCollapseTrigger(props: ComponentProps<'button'>): import("react").JSX.Element;
/**
 * scroll to the element if `active` is true
 */
declare function useAutoScroll(active: boolean, ref: RefObject<HTMLElement | null>): void;
//#endregion
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, base_d_exports, useAutoScroll, useFolder, useFolderDepth, useSidebar };