import { Component, type ComponentType, type ReactNode } from 'react'; import type { AppAdminNavigationIcon } from 'openxiangda-contracts/browser'; import type { RuntimeIdentity } from './platform-client'; import type { RuntimePerspective } from './runtime'; export interface AdminShellNavigationItem { code: string; label: string; path: string; icon?: AppAdminNavigationIcon; } export interface AdminShellNavigationGroup { code: string; label: string; icon?: AppAdminNavigationIcon; items: readonly AdminShellNavigationItem[]; } export interface AdminShellModel { applicationName: string; homePath: string; title: string; pathname: string; search: string; selectedPath?: string; navigation: readonly AdminShellNavigationGroup[]; centers: readonly AdminShellNavigationItem[]; identity: RuntimeIdentity; roleNames: readonly string[]; perspectives: readonly RuntimePerspective[]; perspective: RuntimePerspective | null; setPerspective(code: string | null): void; navigate(path: string): void; logout(): Promise; loggingOut: boolean; } export interface AdminShellProps extends AdminShellModel { children: ReactNode; /** Platform defaults are optional building blocks, not a second mounted shell. */ slots: { header: ReactNode; sidebar: ReactNode; footer: ReactNode; }; } export interface AdminShellOptions { shell?: ComponentType; header?: ComponentType; sidebar?: ComponentType; footer?: ComponentType; /** Presentation only. Routes and authorization remain active. */ centerNavigation?: { workflow?: boolean; messages?: boolean; }; } export declare const AdminShellOptionsContext: import("react").Context; export declare function useAdminShellOptions(): AdminShellOptions | undefined; export declare class AdminShellErrorBoundary extends Component<{ children: ReactNode; homePath: string; onHome(): void; }, { failed: boolean; }> { state: { failed: boolean; }; static getDerivedStateFromError(): { failed: boolean; }; render(): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable | Promise> | Iterable | null | undefined> | null | undefined; } //# sourceMappingURL=admin-shell.d.ts.map