/**
 * Remote UI streaming for Hypen
 *
 * Client-side: Connect to remote Hypen apps
 * Server-side: Stream Hypen apps over WebSocket
 */

// Client
export { RemoteEngine } from "./client.js";
export type {
  RemoteConnectionState,
  RemoteEngineOptions,
  SessionOptions,
  SessionInfo,
} from "./client.js";

// Server
export { RemoteServer, serve } from "./server.js";

// Session Management
export { SessionManager } from "./session.js";
export type { SessionExpireCallback } from "./session.js";

// Types
export type {
  RemoteMessage,
  InitialTreeMessage,
  PatchMessage,
  DispatchActionMessage,
  StateUpdateMessage,
  HelloMessage,
  SessionAckMessage,
  SessionExpiredMessage,
  Session,
  SessionConfig,
  RemoteClient,
  RemoteServerConfig,
} from "./types.js";

// Re-export Patch type
export type { Patch } from "../types.js";
