import { Application } from '@judo/model-api'; import { ModelRegistry } from '@judo/model-loader'; import { ReactNode } from 'react'; /** * Application context type. */ export interface ApplicationContextType { /** Current active application (model required) */ application: Application; /** All available applications (multi-actor) */ applications: Application[]; /** Switch to different actor */ switchActor: (actorName: string) => void; /** Switch to different actor with navigation callback */ switchActorWithNavigation: (actorName: string, onSwitch?: (app: Application) => void) => void; /** Current actor name */ actorName: string; } /** * Hook to access application context. * Throws if used outside provider or without model. * * @returns ApplicationContextType * @throws Error if used outside ApplicationProvider */ export declare function useApplication(): ApplicationContextType; /** * Hook to access application context (optional). * Returns null if not within provider instead of throwing. * * @returns ApplicationContextType | null */ export declare function useApplicationOptional(): ApplicationContextType | null; /** * Props for ApplicationProvider. */ export interface ApplicationProviderProps { children: ReactNode; registry: ModelRegistry; } /** * Provider requiring loaded model. * Uses useSyncExternalStore for proper subscription to registry changes. */ export declare function ApplicationProvider({ children, registry }: ApplicationProviderProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=application-context.d.ts.map