//#region src/components/sidebar.logic.d.ts export type SidebarState = "expanded" | "collapsed"; /** How the sidebar's contents are drawn: the icon rail, or full width. */ export type SidebarLayout = "rail" | "full"; /** * The layout the sidebar's contents are drawn in. The mobile sheet never * collapses to icons, whatever the desktop collapse state holds, so chrome * that changes shape when collapsed (labels, tooltips, the avatar trigger) * reads this rather than `state`. */ export declare const resolveSidebarLayout: ({ state, isMobile }: { state: SidebarState; isMobile: boolean; }) => SidebarLayout; /** * The sidebar's displayed open state: the requested state (controlled prop, * or the uncontrolled fallback), masked by `forceCollapsed`. A host can force * the sidebar collapsed (e.g. a narrow viewport) without losing track of * what the user actually asked for. */ export declare const resolveSidebarOpen: ({ requestedOpen, forceCollapsed }: { requestedOpen: boolean; forceCollapsed: boolean; }) => boolean; /** The `data-state` driven off the sidebar's displayed open state. */ export declare const deriveSidebarState: (open: boolean) => SidebarState; /** * `toggleSidebar`'s desktop transition: it flips the *requested* open state, * not the *displayed* one. `forceCollapsed` can mask a `true` requested state * down to a collapsed display; toggling while forced-collapsed still records * the flip so it takes effect once `forceCollapsed` lifts. */ export declare const nextRequestedOpen: (requestedOpen: boolean) => boolean; /** `toggleSidebar`'s mobile transition: it flips the sheet's open state. */ export declare const nextOpenMobile: (openMobile: boolean) => boolean; //#endregion