export { GatewayServer } from './server.js';
export type { GatewayServerConfig } from './server.js';
export { Router } from './router.js';
export type { HandlerFn, SendFn } from './router.js';
export { SessionBridge } from './session-bridge.js';
export type { SessionBridgeConfig } from './session-bridge.js';
export { LaneQueue } from './lane-queue.js';
export { authenticateRequest } from './auth.js';
export type { AuthConfig, AuthResult } from './auth.js';
export { serveStatic } from './static.js';
export { isTailscaleAvailable, startTailscaleServe, stopTailscaleServe } from './tailscale.js';
export type { TailscaleServeConfig } from './tailscale.js';
export {
  ErrorCode,
  isValidRequest,
  parseMessage,
  makeResponse,
  makeError,
  makeEvent,
} from './protocol.js';
export type {
  GatewayRequest,
  GatewayResponse,
  GatewayError,
  GatewayEvent,
  GatewayAttachment,
  OutboundMessage,
  EventType,
  ContentEventData,
  ToolStartEventData,
  ToolEndEventData,
  AttachmentEventData,
  DoneEventData,
  ErrorEventData,
} from './protocol.js';
