import { ReactElement, ReactNode } from 'react'; import { PyrionRailEntry, PyrionRailModuleLink, PyrionSidebarEntry } from './pyrionLayoutNavTypes'; import { TabSwitchElement } from '../TabSwitch/TabSwitch'; import { NotificationsListControlsHandler } from './usePyrionNotifications'; import { AuthSession, PyrionLayoutControls, PyrionLayoutProps } from './PyrionLayout'; import { ScrollableControlsHandler } from '../Scrollable/useScrollable'; export type TLayoutBaseProps = { entries?: PyrionSidebarEntry[]; footerEntries?: PyrionSidebarEntry[]; modules?: PyrionRailEntry[]; footerModules?: PyrionRailEntry[]; activeModuleId?: string; onModuleClick?: (module: PyrionRailModuleLink) => void; sidebarAppName?: string; moduleName?: string; handleNavigation: (path: string) => void; activeActionId?: string; onActionClick?: (id: string, payload?: unknown) => void; state: PyrionLayoutProps["state"]; currentAppSessions: AuthSession[]; onSessionClick?: (session: AuthSession) => void; onLogoutClick?: () => void; onAddAccountClick?: () => void; onProfileClick?: (collapsed: boolean) => void; onUserPreferencesClick?: () => void; currentSystemId: string; currentTabName?: string; onSystemLogoClick?: (collapsed?: boolean) => void; tabs: TabSwitchElement[]; helpSection?: ReactNode | (() => ReactNode); pyrionLayoutControlsRef: React.RefObject>; notificationsListControls?: React.RefObject | null>; scrollableControls?: React.RefObject; outletRef: React.RefObject; }; type LayoutBaseComponent = (props: TLayoutBaseProps & { children?: ReactNode; }) => ReactElement; type LayoutBaseMemoComponent = LayoutBaseComponent & { displayName?: string; }; declare const LayoutBase: LayoutBaseMemoComponent; export default LayoutBase;