export declare class ValidationError extends Error { resourceType: string; field: string; resourceId?: string | undefined; constructor(resourceType: string, field: string, resourceId?: string | undefined); } export declare class DuplicateRegistrationError extends Error { resourceType: string; identifier: string; constructor(resourceType: string, identifier: string); } export declare class ActionTimeoutError extends Error { actionId: string; timeoutMs: number; constructor(actionId: string, timeoutMs: number); } export declare class ActionExecutionError extends Error { actionId: string; cause: Error; constructor(actionId: string, cause: Error); } export interface Logger { debug(message: string, ...args: unknown[]): void; info(message: string, ...args: unknown[]): void; warn(message: string, ...args: unknown[]): void; error(message: string, ...args: unknown[]): void; } export declare class ConsoleLogger implements Logger { debug(message: string, ...args: unknown[]): void; info(message: string, ...args: unknown[]): void; warn(message: string, ...args: unknown[]): void; error(message: string, ...args: unknown[]): void; } export declare enum RuntimeState { Uninitialized = "uninitialized", Initializing = "initializing", Initialized = "initialized", ShuttingDown = "shutting_down", Shutdown = "shutdown" } export interface ConfigValidationResult { valid: boolean; errors?: string[]; } export interface PluginDefinition> { name: string; version: string; dependencies?: string[]; configKeys?: string[]; validateConfig?: (config: TConfig) => boolean | ConfigValidationResult | Promise; setup: (context: RuntimeContext) => void | Promise; dispose?: (context: RuntimeContext) => void | Promise; } export interface PluginLoader { loadPlugins(pluginPaths: string[], pluginPackages: string[]): Promise; } export interface ScreenDefinition { id: string; title: string; component: string; } export interface ActionDefinition

> { id: string; handler: (params: P, context: RuntimeContext) => Promise | R; timeout?: number; } export interface UIProvider> { mount(target: unknown, context: RuntimeContext): void | Promise; renderScreen(screen: ScreenDefinition): unknown | Promise; unmount?(): void | Promise; } export interface RuntimeContext> { screens: { registerScreen(screen: ScreenDefinition): () => void; getScreen(id: string): ScreenDefinition | null; getAllScreens(): ScreenDefinition[]; }; actions: { registerAction

(action: ActionDefinition): () => void; runAction

(id: string, params?: P): Promise; }; plugins: { registerPlugin(plugin: PluginDefinition): void; getPlugin(name: string): PluginDefinition | null; getAllPlugins(): PluginDefinition[]; getInitializedPlugins(): string[]; }; events: { emit(event: string, data?: unknown): void; emitAsync(event: string, data?: unknown): Promise; on(event: string, handler: (data: unknown) => void): () => void; }; services: { register(name: string, service: T): void; get(name: string): T; has(name: string): boolean; list(): string[]; }; getRuntime(): Runtime; readonly logger: Logger; readonly config: Readonly; readonly host: Readonly>; readonly introspect: IntrospectionAPI; } export interface Runtime> { initialize(): Promise; shutdown(): Promise; getContext(): RuntimeContext; getConfig(): Readonly; updateConfig(config: Partial): void; } export interface RuntimeOptions> { logger?: Logger; hostContext?: Record; config?: TConfig; enablePerformanceMonitoring?: boolean; pluginPaths?: string[]; pluginPackages?: string[]; pluginLoader?: PluginLoader; } export interface ActionMetadata { id: string; timeout?: number; } export interface PluginMetadata { name: string; version: string; } export interface IntrospectionMetadata { runtimeVersion: string; totalActions: number; totalPlugins: number; totalScreens: number; } export interface IntrospectionAPI { listActions(): string[]; getActionDefinition(id: string): ActionMetadata | null; listPlugins(): string[]; getPluginDefinition(name: string): PluginMetadata | null; listScreens(): string[]; getScreenDefinition(id: string): ScreenDefinition | null; getMetadata(): IntrospectionMetadata; } //# sourceMappingURL=types.d.ts.map