/**
 * @hypen-space/core - Hypen Core Engine
 *
 * Platform-agnostic reactive UI runtime.
 * Use with @hypen/web for browser rendering, or build your own renderer.
 *
 * ## Quick Start (Single-File Component)
 *
 * ```typescript
 * import { app, hypen, state } from "@hypen-space/core";
 *
 * export default app
 *   .defineState({ count: 0 })
 *   .onAction("increment", ({ state }) => {
 *     state.count += 1;
 *   })
 *   .ui(hypen`
 *     Column {
 *       Text("Count: ${state.count}")
 *       Button { Text("+") }
 *         .onClick("@actions.increment")
 *     }
 *   `);
 * ```
 *
 * ## Two-File Component (Legacy)
 *
 * ```typescript
 * // component.ts
 * import { app } from "@hypen-space/core";
 *
 * export default app
 *   .defineState({ count: 0 })
 *   .onAction("increment", ({ state }) => {
 *     state.count++;
 *   })
 *   .build();
 *
 * // component.hypen (separate file)
 * // Column { Text("Count: ${state.count}") ... }
 * ```
 */
export type { Patch, Action, RenderCallback, ActionHandler as EngineActionHandler, ResolvedComponent, ComponentResolver as EngineComponentResolver, } from "./types.js";
export { app, HypenApp, HypenAppBuilder, HypenModuleInstance } from "./app.js";
export { hypen, state, item, index } from "./hypen.js";
export type { StateProxy, ItemProxy } from "./hypen.js";
export type { IEngine, ActionContext, GlobalContext, LifecycleHandler, ActionHandlerContext, ActionHandler, HypenModuleDefinition, HypenModule, DisconnectContext, ReconnectContext, ExpireContext, DisconnectHandler, ReconnectHandler, ExpireHandler, ErrorContext, ErrorHandler, ErrorHandlerResult, DataSourceAccessor, } from "./app.js";
export { DataSourceManager } from "./datasource.js";
export type { DataSourcePlugin, DataSourceStatus, DataSourceQuery, DataSourceSubscription, DataSourceChange, IDataSourceEngine, } from "./datasource.js";
export { createObservableState, batchStateUpdates, getStateSnapshot, isStateProxy, unwrapProxy, } from "./state.js";
export type { StatePath, StateChange, StateObserverOptions, } from "./state.js";
export { BaseRenderer, ConsoleRenderer } from "./renderer.js";
export type { Renderer } from "./renderer.js";
export { HypenRouter } from "./router.js";
export type { RouteMatch, RouteState, RouteChangeCallback, } from "./router.js";
export { TypedEventEmitter, createEventEmitter } from "./events.js";
export type { EventHandler, HypenFrameworkEvents } from "./events.js";
export { HypenGlobalContext } from "./context.js";
export type { ModuleReference } from "./context.js";
export { RemoteEngine } from "./remote/client.js";
export type { RemoteConnectionState, RemoteEngineOptions, SessionOptions, SessionInfo, } from "./remote/client.js";
export { SessionManager } from "./remote/session.js";
export type { SessionExpireCallback } from "./remote/session.js";
export type { RemoteMessage, InitialTreeMessage, PatchMessage, DispatchActionMessage, StateUpdateMessage, HelloMessage, SessionAckMessage, SessionExpiredMessage, Session, SessionConfig, RemoteClient, RemoteServerConfig, } from "./remote/types.js";
export { ComponentResolver } from "./resolver.js";
export type { ImportStatement, ImportClause, ImportSource, ComponentDefinition as ResolverComponentDefinition, ResolverOptions, } from "./resolver.js";
export type { ComponentDefinition } from "./loader.js";
export type { DiscoveredComponent, DiscoveryOptions, WatchOptions, } from "./discovery.js";
export type { HypenPluginOptions } from "./plugin.js";
export { Router, Route, Link } from "./components/builtin.js";
export { Ok, Err, isOk, isErr, fromPromise, fromTry, map, mapErr, flatMap, unwrap, unwrapOr, unwrapOrElse, match, all, HypenError, ActionError, ConnectionError, StateError, ParseError, RenderError, classifyEngineError, } from "./result.js";
export type { Result } from "./result.js";
export { DisposableStack, DisposableMixin, isDisposable, disposableListener, disposableTimeout, disposableInterval, disposableWebSocket, disposableAbortController, disposableSubscription, getElementDisposables, disposeElement, hasElementDisposables, compositeDisposable, using, usingSync, } from "./disposable.js";
export type { Disposable } from "./disposable.js";
export { retry, retryResult, withRetry, RetryConditions, RetryPresets, } from "./retry.js";
export type { RetryOptions } from "./retry.js";
export { Logger, createLogger, logger, log, frameworkLoggers, setLogLevel, getLogLevel, configureLogger, enableLogging, disableLogging, setDebugMode, isDebugMode, } from "./logger.js";
export type { LogLevel, LoggerConfig, LogHandler } from "./logger.js";
