import { default as React } from 'react'; import { AppRegistryEntry, FileNode } from '../types'; import { TFunction } from 'i18next'; import { AppRoleMap } from '../os/contract'; /** Resolve the localized display title for a registry entry. */ export declare const getAppDisplayName: (def: AppRegistryEntry, t: TFunction) => string; /** * APP_REGISTRY - the single registry for all openable apps. * * Field description for each record: * id - unique app identifier (same as the registry key) * name - display name * icon - default window icon (XPIcon key or data: URL) * window - default window configuration * .width / .height - initial size * .singleton - when true, only one instance is allowed globally; reopening focuses the existing window * lifecycle - lifecycle callbacks, receiving (windowId) * .onOpen(id) - after the window is created * .onClose(id) - before the window is closed * .onFocus(id) - when the window gains focus * associations - file associations (used automatically when node.app in filesystem.json matches) * .appField - matches the node.app field value * .getProps(item) - converts a filesystem node into component props * restore(props) - reconstructs JSX from saved componentProps (used during localStorage restore) */ export declare const APP_REGISTRY: Record; /** * resolveFileOpen - resolve a filesystem node into a parameter object that can be passed directly to openWindow(). * * @param {string} key The node's key among its parent's children (used as Explorer's initialPath) * @param {object} item A node from filesystem.json * @returns {{ appId, component, icon, windowProps } | null} * Returns null when the node cannot be opened (DummyApp or unregistered); the caller is responsible for showing a hint. */ export declare const resolveFileOpen: (key: string, item: FileNode, appRoles?: Partial, registry?: Record, sourcePath?: string[]) => { appId: string; component: React.ReactNode; icon: string; windowProps: { componentProps: {}; onOpen: ((windowId: string) => void) | null; onClose: ((windowId: string) => void) | null; onFocus: ((windowId: string) => void) | null; width?: number; height?: number; minWidth?: number; minHeight?: number; left?: number; top?: number; singleton?: boolean; isMaximized?: boolean; resizable?: boolean; }; } | null;