import { ReactNode } from 'react'; export type NavigationDrawerActivePanel = "drawer" | "outlet" | "sidebar"; export type DrawerNodeRole = "container" | "drawer" | "outlet" | "sidebar" | "leftSlot" | "rail"; export type NavigationDrawerActions = { /** * @deprecated Usa `toggleDrawer` o los métodos específicos `openDrawer` y `closeDrawer`. */ toggleCollapse: () => void; toggleDrawer: () => void; closeDrawer: (params?: { closeIfMobile?: boolean; closeIfDesktop?: boolean; }) => void; openDrawer: (params?: { openIfMobile?: boolean; openIfDesktop?: boolean; }) => void; getIsCollapsed: () => boolean; subscribeToCollapse: (listener: (collapsed: boolean) => void) => () => void; openSidebar: () => void; closeSidebar: (cb?: () => void) => void; toggleSidebar: (cb?: (newStatus: "open" | "closed") => void) => void; getIsSidebarOpen: () => boolean; subscribeToSidebarOpen: (listener: (open: boolean) => void) => () => void; }; export type NavigationDrawerRenderContext = NavigationDrawerActions; export type NavigationDrawerSlotChildren = ReactNode | ((context: NavigationDrawerRenderContext) => ReactNode); export type CollapsedState = { desktop: boolean; mobile: boolean; }; export type DrawerShellConfig = { classNameDrawer?: string; classNameSidebar?: string; modal: boolean; closeOnOutsideClick: boolean; outletRef?: React.RefObject; defaultCollapsedState: CollapsedState; };