@ubean/server 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,492 @@
1
+ import { Hookable } from "hookable";
2
+ import { Context, MiddlewareHandler, Next } from "hono";
3
+ import { RouteRule, RouteRule as RouteRule$1, Span, Span as Span$1, SpanAttributes, SpanAttributes as SpanAttributes$1, SpanContext, SpanEndOptions, SpanEvent, SpanOptions, SpanOptions as SpanOptions$1, SpanStatus, UbeanBindings, UbeanContext, UbeanEnv, UbeanEnv as UbeanEnv$1, UbeanVariables } from "@ubean/types";
4
+ //#region src/cache.d.ts
5
+ interface CacheEntry {
6
+ body: ArrayBuffer;
7
+ headers: Record<string, string>;
8
+ status: number;
9
+ statusText: string;
10
+ createdAt: number;
11
+ expiresAt: number;
12
+ }
13
+ interface CacheStore {
14
+ get(key: string): Promise<CacheEntry | undefined>;
15
+ set(key: string, entry: Omit<CacheEntry, 'createdAt' | 'expiresAt'>, ttl: number): Promise<void>;
16
+ delete(key: string): Promise<boolean>;
17
+ clear(): Promise<void>;
18
+ }
19
+ declare function createMemoryStore(maxEntries?: number): CacheStore;
20
+ declare function useCacheStore(store?: CacheStore): CacheStore;
21
+ declare function clearCacheStore(): void;
22
+ interface CacheRule {
23
+ ttl: number;
24
+ swr?: boolean | number;
25
+ name?: string;
26
+ }
27
+ declare function createCacheMiddleware(options?: {
28
+ store?: CacheStore;
29
+ rules?: Record<string, CacheRule>;
30
+ defaultTtl?: number;
31
+ }): (c: Context, next: Next) => Promise<Response | undefined>;
32
+ declare function cachedEventHandler<T extends (c: Context) => Response | Promise<Response>>(handler: T, options?: CacheRule): T;
33
+ declare function invalidateRouteCache(keyPattern?: string | RegExp): Promise<void>;
34
+ declare function resolveRouteCacheRules(routeRules: Record<string, RouteRule$1>): Record<string, CacheRule>;
35
+ //#endregion
36
+ //#region src/database.d.ts
37
+ interface DatabaseHooks {
38
+ 'db:connect': (db: Database) => void | Promise<void>;
39
+ 'db:disconnect': (db: Database) => void | Promise<void>;
40
+ 'db:query': (query: string, params?: unknown[]) => void | Promise<void>;
41
+ 'db:error': (error: Error, query?: string) => void | Promise<void>;
42
+ }
43
+ interface Database {
44
+ sql: <T = Record<string, unknown>>(strings: TemplateStringsArray, ...values: unknown[]) => Promise<{
45
+ rows: T[];
46
+ }>;
47
+ exec: (query: string) => Promise<void>;
48
+ close: () => Promise<void>;
49
+ }
50
+ interface DatabaseConnector {
51
+ (options?: Record<string, unknown>): DatabaseConnectorInstance;
52
+ }
53
+ interface DatabaseConnectorInstance {
54
+ dialect?: string;
55
+ [key: string]: unknown;
56
+ }
57
+ interface DrizzleConfig {
58
+ schema?: Record<string, unknown>;
59
+ logger?: boolean | {
60
+ logQuery?: (query: string, params: unknown[]) => void;
61
+ };
62
+ casing?: 'camelCase' | 'snake_case';
63
+ }
64
+ interface DatabaseOptions {
65
+ connector?: DatabaseConnectorInstance;
66
+ connectors?: Record<string, DatabaseConnectorInstance>;
67
+ default?: string;
68
+ }
69
+ interface Migration {
70
+ name: string;
71
+ up: string;
72
+ down?: string;
73
+ }
74
+ declare const RAW_SQL: unique symbol;
75
+ interface RawSqlValue {
76
+ [RAW_SQL]: true;
77
+ value: string;
78
+ }
79
+ declare function rawSql(str: string): RawSqlValue;
80
+ type RawSqlFn = <T = Record<string, unknown>>(strings: TemplateStringsArray, ...values: unknown[]) => Promise<{
81
+ rows: T[];
82
+ }>;
83
+ type RawExecFn = (query: string) => Promise<void>;
84
+ type RawCloseFn = () => Promise<void>;
85
+ declare function defineDatabase(options?: DatabaseOptions): Database;
86
+ declare function useDatabase(name?: string): Database;
87
+ declare function closeDatabases(): Promise<void>;
88
+ declare function getDatabaseHooks(): import("hookable").Hookable<DatabaseHooks, import("hookable").HookKeys<DatabaseHooks>>;
89
+ declare function registerDb0Create(fn: (connector: DatabaseConnectorInstance) => {
90
+ sql: RawSqlFn;
91
+ exec: RawExecFn;
92
+ close: RawCloseFn;
93
+ }): void;
94
+ declare function migrateDatabase(db: Database, migrations: string[]): Promise<void>;
95
+ declare function runMigrations(db: Database, migrations: Migration[], options?: {
96
+ table?: string;
97
+ log?: boolean;
98
+ }): Promise<{
99
+ applied: string[];
100
+ }>;
101
+ //#endregion
102
+ //#region src/queue.d.ts
103
+ interface QueueMessage<T = unknown> {
104
+ id: string;
105
+ body: T;
106
+ timestamp: number;
107
+ attempts: number;
108
+ headers?: Record<string, string>;
109
+ }
110
+ interface QueueHandler<T = unknown> {
111
+ (message: QueueMessage<T>): void | Promise<void>;
112
+ }
113
+ interface QueueOptions<T = unknown> {
114
+ name: string;
115
+ handler?: QueueHandler<T>;
116
+ concurrency?: number;
117
+ retries?: number;
118
+ retryDelay?: number;
119
+ deadLetterQueue?: string;
120
+ }
121
+ interface QueueDefinition<T = unknown> extends QueueOptions<T> {
122
+ handler: QueueHandler<T>;
123
+ }
124
+ interface QueueDriver {
125
+ send<T>(queueName: string, message: T, options?: SendOptions): Promise<string>;
126
+ sendBatch<T>(queueName: string, messages: T[], options?: SendOptions): Promise<string[]>;
127
+ registerHandler?(queueName: string, handler: QueueHandler, options?: QueueOptions): void;
128
+ start?(): Promise<void>;
129
+ stop?(): Promise<void>;
130
+ getQueueDepth?(queueName: string): Promise<number>;
131
+ deleteMessage?(queueName: string, messageId: string): Promise<boolean>;
132
+ }
133
+ interface SendOptions {
134
+ delay?: number;
135
+ headers?: Record<string, string>;
136
+ }
137
+ interface QueueStats {
138
+ pending: number;
139
+ processing: number;
140
+ completed: number;
141
+ failed: number;
142
+ }
143
+ declare function defineQueue<T = unknown>(options: QueueOptions<T>, handler?: QueueHandler<T>): QueueDefinition<T>;
144
+ declare function createMemoryQueueDriver(): QueueDriver;
145
+ declare function useQueueDriver(): QueueDriver;
146
+ declare function setQueueDriver(driver: QueueDriver): void;
147
+ declare function sendMessage<T = unknown>(queueName: string, body: T, options?: SendOptions): Promise<string>;
148
+ declare function sendMessages<T = unknown>(queueName: string, bodies: T[], options?: SendOptions): Promise<string[]>;
149
+ declare function getQueueDefinitions(): QueueDefinition[];
150
+ declare function clearQueueDefinitions(): void;
151
+ declare function startQueueWorkers(): Promise<void>;
152
+ declare function stopQueueWorkers(): Promise<void>;
153
+ declare function getQueueStats(queueName: string): QueueStats | undefined;
154
+ declare function getAllQueueStats(): Record<string, QueueStats>;
155
+ //#endregion
156
+ //#region src/cron.d.ts
157
+ type CronSchedule = string;
158
+ interface CronTaskMeta {
159
+ name: string;
160
+ schedule: CronSchedule;
161
+ description?: string;
162
+ timezone?: string;
163
+ timeout?: number;
164
+ runOnStart?: boolean;
165
+ }
166
+ interface CronTaskDefinition extends CronTaskMeta {
167
+ handler: (ctx: CronContext) => void | Promise<void>;
168
+ }
169
+ interface CronContext {
170
+ name: string;
171
+ schedule: CronSchedule;
172
+ timestamp: Date;
173
+ runCount: number;
174
+ }
175
+ interface ScheduledTask {
176
+ name: string;
177
+ schedule: CronSchedule;
178
+ handler: (ctx: CronContext) => void | Promise<void>;
179
+ meta: Omit<CronTaskMeta, 'name' | 'schedule'>;
180
+ }
181
+ declare function defineScheduled(metaOrName: CronTaskMeta | string, handler?: (ctx: CronContext) => void | Promise<void>): ScheduledTask;
182
+ declare function getScheduledTasks(): ScheduledTask[];
183
+ declare function clearScheduledTasks(): void;
184
+ declare function runScheduledTask(name: string): Promise<{
185
+ ok: boolean;
186
+ duration: number;
187
+ error?: Error;
188
+ }>;
189
+ declare function createCronContext(name: string, schedule: string): CronContext;
190
+ //#endregion
191
+ //#region src/cron-scheduler.d.ts
192
+ interface CronScheduler {
193
+ start(): Promise<void>;
194
+ stop(): Promise<void>;
195
+ runTask(name: string): Promise<{
196
+ ok: boolean;
197
+ duration: number;
198
+ error?: Error;
199
+ }>;
200
+ isRunning(): boolean;
201
+ getTasks(): ScheduledTask[];
202
+ getNextRuns(): Array<{
203
+ name: string;
204
+ nextRun: Date | null;
205
+ }>;
206
+ }
207
+ interface SchedulerOptions {
208
+ timezone?: string;
209
+ defaultTimeout?: number;
210
+ onTaskStart?: (task: ScheduledTask) => void;
211
+ onTaskComplete?: (task: ScheduledTask, result: {
212
+ ok: boolean;
213
+ duration: number;
214
+ error?: Error;
215
+ }) => void;
216
+ onTaskError?: (task: ScheduledTask, error: Error) => void;
217
+ }
218
+ type CronField = number[];
219
+ interface ParsedCron {
220
+ minute: CronField;
221
+ hour: CronField;
222
+ dom: CronField;
223
+ month: CronField;
224
+ dow: CronField;
225
+ }
226
+ declare function parseCron(schedule: string): ParsedCron | null;
227
+ declare function createMemoryCronScheduler(options?: SchedulerOptions): CronScheduler;
228
+ declare function startCronScheduler(options?: SchedulerOptions): CronScheduler;
229
+ declare function resetCronRunCounts(): void;
230
+ declare function validateCron(schedule: string): boolean;
231
+ //#endregion
232
+ //#region src/websocket.d.ts
233
+ interface Peer {
234
+ readonly id: string;
235
+ readonly url: string;
236
+ readonly headers: Headers;
237
+ readonly readyState: number;
238
+ send(data: string | ArrayBuffer | Uint8Array): void;
239
+ publish(topic: string, data: string | ArrayBuffer | Uint8Array): void;
240
+ subscribe(topic: string): void;
241
+ unsubscribe(topic: string): void;
242
+ close(code?: number, reason?: string): void;
243
+ getData<T = unknown>(): T | undefined;
244
+ setData<T>(data: T): void;
245
+ }
246
+ interface WebSocketRoom {
247
+ readonly name: string;
248
+ readonly peers: Set<Peer>;
249
+ broadcast(data: string | ArrayBuffer | Uint8Array, options?: {
250
+ except?: Peer;
251
+ }): void;
252
+ add(peer: Peer): void;
253
+ remove(peer: Peer): void;
254
+ }
255
+ interface WebSocketHooks {
256
+ open?: (peer: Peer) => void | Promise<void>;
257
+ message?: (peer: Peer, message: string | ArrayBuffer) => void | Promise<void>;
258
+ close?: (peer: Peer, code: number, reason: string) => void | Promise<void>;
259
+ error?: (peer: Peer, error: Error) => void | Promise<void>;
260
+ }
261
+ interface WebSocketDefinition {
262
+ path?: string;
263
+ hooks?: WebSocketHooks;
264
+ topics?: string[];
265
+ rooms?: string[];
266
+ }
267
+ declare function createRoom(name: string): WebSocketRoom;
268
+ declare function defineWebSocket(def: WebSocketDefinition): WebSocketDefinition;
269
+ declare function defineRoom(name: string): WebSocketRoom;
270
+ declare function getRoom(name: string): WebSocketRoom | undefined;
271
+ declare function getRooms(): Map<string, WebSocketRoom>;
272
+ declare function broadcast(topic: string, data: string | ArrayBuffer | Uint8Array): void;
273
+ declare function registerWebSocket(path: string, def: WebSocketDefinition): void;
274
+ declare function getWebSocketDefinitions(): Map<string, WebSocketDefinition>;
275
+ interface UpgradeResult {
276
+ response: Response;
277
+ peer: Peer;
278
+ }
279
+ declare function handleUpgrade(c: Context<UbeanEnv$1>, options: {
280
+ send: (data: string | ArrayBuffer | Uint8Array) => void;
281
+ close: (code?: number, reason?: string) => void;
282
+ raw?: unknown;
283
+ }): UpgradeResult;
284
+ declare function handleMessage(peer: Peer, message: string | ArrayBuffer): void;
285
+ declare function handleClose(peer: Peer, code?: number, reason?: string): void;
286
+ declare function handleError(peer: Peer, error: Error): void;
287
+ declare function createWebSocketMiddleware(): MiddlewareHandler<UbeanEnv$1>;
288
+ declare function clearWebSocketState(): void;
289
+ //#endregion
290
+ //#region src/sse.d.ts
291
+ interface SSEMessage {
292
+ data?: string | object;
293
+ event?: string;
294
+ id?: string;
295
+ retry?: number;
296
+ comment?: string;
297
+ }
298
+ interface SSEConnection {
299
+ readonly id: string;
300
+ send(message: SSEMessage): void;
301
+ sendData(data: string | object, event?: string): void;
302
+ comment(text: string): void;
303
+ close(): void;
304
+ readonly closed: boolean;
305
+ }
306
+ interface SSEHandler {
307
+ onConnect?: (connection: SSEConnection) => void | Promise<void>;
308
+ onClose?: (connection: SSEConnection) => void | Promise<void>;
309
+ }
310
+ interface SSEOptions {
311
+ headers?: Record<string, string>;
312
+ retry?: number;
313
+ keepAlive?: boolean | number;
314
+ }
315
+ declare function formatSSEMessage(msg: SSEMessage): string;
316
+ declare function createSSEStream(c: Context<UbeanEnv$1>, handler: SSEHandler, options?: SSEOptions): Response;
317
+ declare function defineSSE(handler: SSEHandler, options?: SSEOptions): MiddlewareHandler<UbeanEnv$1>;
318
+ declare function getSSEConnections(): Map<string, SSEConnection>;
319
+ declare function broadcastSSE(event: string, data: string | object, filter?: (conn: SSEConnection) => boolean): void;
320
+ declare function closeAllSSE(): void;
321
+ declare function sseHeaders(): Record<string, string>;
322
+ declare function clearSSEState(): void;
323
+ //#endregion
324
+ //#region src/storage.d.ts
325
+ interface StorageDriver {
326
+ getItemRaw(key: string): Promise<unknown>;
327
+ setItemRaw(key: string, value: unknown): Promise<void>;
328
+ removeItem(key: string): Promise<void>;
329
+ getKeys(base?: string): Promise<string[]>;
330
+ clear(base?: string): Promise<void>;
331
+ hasItem(key: string): Promise<boolean>;
332
+ }
333
+ interface UbeanStorage {
334
+ get<T = unknown>(key: string): Promise<T | null>;
335
+ set<T = unknown>(key: string, value: T, ttl?: number): Promise<void>;
336
+ remove(key: string): Promise<void>;
337
+ keys(base?: string): Promise<string[]>;
338
+ clear(base?: string): Promise<void>;
339
+ has(key: string): Promise<boolean>;
340
+ getMeta(key: string): Promise<{
341
+ ttl?: number;
342
+ createdAt?: number;
343
+ expiresAt?: number;
344
+ } | null>;
345
+ mount(base: string, driver: StorageDriver): void;
346
+ }
347
+ declare function createMemoryDriver(): StorageDriver;
348
+ declare function createStorage(options?: {
349
+ driver?: StorageDriver;
350
+ base?: string;
351
+ }): UbeanStorage;
352
+ declare function useStorage(storage?: UbeanStorage): UbeanStorage;
353
+ declare function clearGlobalStorage(): void;
354
+ interface KVOptions<T = unknown> {
355
+ ttl?: number;
356
+ prefix?: string;
357
+ serialize?: (value: T) => string;
358
+ deserialize?: (raw: string) => T;
359
+ }
360
+ interface KVNamespace<T = unknown> {
361
+ get(key: string): Promise<T | null>;
362
+ set(key: string, value: T, ttl?: number): Promise<void>;
363
+ remove(key: string): Promise<void>;
364
+ keys(): Promise<string[]>;
365
+ has(key: string): Promise<boolean>;
366
+ clear(): Promise<void>;
367
+ }
368
+ declare function createKV<T = unknown>(options?: KVOptions<T>): KVNamespace<T>;
369
+ declare function useKV<T = unknown>(name?: string, options?: KVOptions<T>): KVNamespace<T>;
370
+ //#endregion
371
+ //#region src/observability.d.ts
372
+ declare const REQUEST_ID_HEADER = "x-request-id";
373
+ interface RequestIdOptions {
374
+ headerName?: string;
375
+ limitLength?: number;
376
+ generator?: (c: any) => string;
377
+ }
378
+ declare function generateRequestId(): string;
379
+ declare function getRequestId(c: {
380
+ get: (key: 'requestId') => string;
381
+ }): string;
382
+ interface ObservabilityHooks {
383
+ 'span:start': (span: Span$1) => void | Promise<void>;
384
+ 'span:end': (span: Span$1) => void | Promise<void>;
385
+ 'span:error': (span: Span$1, error: Error) => void | Promise<void>;
386
+ }
387
+ interface ObservabilityExporter {
388
+ name: string;
389
+ exportSpan(span: Readonly<Span$1>): void | Promise<void>;
390
+ flush?(): Promise<void>;
391
+ shutdown?(): Promise<void>;
392
+ }
393
+ interface ObservabilityConfig {
394
+ defaultAttributes?: SpanAttributes$1;
395
+ sensitiveKeys?: string[];
396
+ exporters?: ObservabilityExporter[];
397
+ enabled?: boolean;
398
+ }
399
+ declare function createSpan(options: SpanOptions$1): Span$1;
400
+ declare function createObservabilityTracer(config?: ObservabilityConfig): {
401
+ hooks: Hookable<ObservabilityHooks, import("hookable").HookKeys<ObservabilityHooks>>;
402
+ startSpan: (options: SpanOptions$1) => Span$1;
403
+ withSpan: <T>(options: SpanOptions$1 | string, fn: (span: Span$1) => T | Promise<T>) => Promise<T>;
404
+ getActiveSpan: () => Span$1 | undefined;
405
+ addExporter: (exporter: ObservabilityExporter) => void;
406
+ removeExporter: (name: string) => void;
407
+ redactAttributes: (attrs: SpanAttributes$1) => SpanAttributes$1;
408
+ flush: () => Promise<void>;
409
+ shutdown: () => Promise<void>;
410
+ createSpan: typeof createSpan;
411
+ };
412
+ type ObservabilityTracer = ReturnType<typeof createObservabilityTracer>;
413
+ declare function setGlobalTracer(tracer: ObservabilityTracer | null): void;
414
+ declare function getGlobalTracer(): ObservabilityTracer;
415
+ declare function startSpan(options: SpanOptions$1 | string): Span$1;
416
+ declare function withSpan<T>(options: SpanOptions$1 | string, fn: (span: Span$1) => T | Promise<T>): Promise<T>;
417
+ declare function createOpenTelemetryExporter(options?: {
418
+ url?: string;
419
+ headers?: Record<string, string>;
420
+ serviceName?: string;
421
+ serviceVersion?: string;
422
+ fetchImpl?: typeof fetch;
423
+ }): ObservabilityExporter;
424
+ declare function createConsoleExporter(options?: {
425
+ colors?: boolean;
426
+ slowThreshold?: number;
427
+ }): ObservabilityExporter;
428
+ interface TracingMiddlewareOptions {
429
+ tracer?: ObservabilityTracer;
430
+ includeHeaders?: boolean;
431
+ headerFilter?: (name: string) => boolean;
432
+ }
433
+ declare function createTracingMiddleware(options?: TracingMiddlewareOptions): (c: any, next: any) => Promise<void>;
434
+ declare function getSpan(c: {
435
+ get: (key: string) => unknown;
436
+ }): Span$1 | undefined;
437
+ //#endregion
438
+ //#region src/static.d.ts
439
+ interface ServeStaticOptions {
440
+ publicDir: string;
441
+ indexFiles?: string[];
442
+ maxAge?: number;
443
+ }
444
+ declare function serveStatic(options: ServeStaticOptions): MiddlewareHandler<UbeanEnv$1>;
445
+ //#endregion
446
+ //#region src/cors.d.ts
447
+ interface CorsOptions {
448
+ origin?: string | string[] | boolean | ((origin: string, c: Context<UbeanEnv$1>) => boolean | string | undefined | Promise<boolean | string | undefined>);
449
+ allowMethods?: string[];
450
+ allowHeaders?: string[];
451
+ exposeHeaders?: string[];
452
+ credentials?: boolean;
453
+ maxAge?: number;
454
+ preflightContinue?: boolean;
455
+ }
456
+ declare function createCorsMiddleware(options?: CorsOptions): MiddlewareHandler<UbeanEnv$1>;
457
+ declare function defineCors(options: CorsOptions): MiddlewareHandler<UbeanEnv$1>;
458
+ //#endregion
459
+ //#region src/rate-limit.d.ts
460
+ interface RateLimitOptions {
461
+ maxRequests?: number;
462
+ windowMs?: number;
463
+ keyGenerator?: (c: Context<UbeanEnv$1>) => string;
464
+ handler?: (c: Context<UbeanEnv$1>, info: RateLimitInfo) => Response | Promise<Response>;
465
+ skip?: (c: Context<UbeanEnv$1>) => boolean | Promise<boolean>;
466
+ standardHeaders?: boolean;
467
+ legacyHeaders?: boolean;
468
+ store?: RateLimitStore;
469
+ }
470
+ interface RateLimitInfo {
471
+ limit: number;
472
+ remaining: number;
473
+ reset: number;
474
+ retryAfter: number;
475
+ }
476
+ interface RateLimitStoreEntry {
477
+ count: number;
478
+ resetAt: number;
479
+ }
480
+ interface RateLimitStore {
481
+ get(key: string): Promise<RateLimitStoreEntry | undefined>;
482
+ set(key: string, entry: RateLimitStoreEntry, ttlMs: number): Promise<void>;
483
+ increment(key: string, windowMs: number): Promise<RateLimitStoreEntry>;
484
+ reset(key: string): Promise<void>;
485
+ }
486
+ declare function createRateLimitMiddleware(options?: RateLimitOptions): MiddlewareHandler<UbeanEnv$1>;
487
+ declare function defineRateLimit(options: RateLimitOptions): MiddlewareHandler<UbeanEnv$1>;
488
+ declare function createMemoryRateLimitStore(): RateLimitStore & {
489
+ destroy(): void;
490
+ };
491
+ //#endregion
492
+ export { type CacheEntry, type CacheRule, type CacheStore, type CorsOptions, type CronContext, type CronSchedule, type CronScheduler, type CronTaskDefinition, type CronTaskMeta, type Database, type DatabaseConnector, type DatabaseConnectorInstance, type DatabaseHooks, type DatabaseOptions, type DrizzleConfig, type KVNamespace, type KVOptions, type Migration, type ObservabilityConfig, type ObservabilityExporter, type ObservabilityHooks, type ObservabilityTracer, type Peer, type QueueDefinition, type QueueDriver, type QueueHandler, type QueueMessage, type QueueOptions, type QueueStats, REQUEST_ID_HEADER, type RateLimitInfo, type RateLimitOptions, type RateLimitStore, type RateLimitStoreEntry, type RequestIdOptions, type RouteRule, type SSEConnection, type SSEHandler, type SSEMessage, type SSEOptions, type ScheduledTask, type SchedulerOptions, type SendOptions, type ServeStaticOptions, type Span, type SpanAttributes, type SpanContext, type SpanEndOptions, type SpanEvent, type SpanOptions, type SpanStatus, type StorageDriver, type TracingMiddlewareOptions, type UbeanBindings, type UbeanContext, type UbeanEnv, type UbeanStorage, type UbeanVariables, type UpgradeResult, type WebSocketDefinition, type WebSocketHooks, type WebSocketRoom, broadcast, broadcastSSE, cachedEventHandler, clearCacheStore, clearGlobalStorage, clearQueueDefinitions, clearSSEState, clearScheduledTasks, clearWebSocketState, closeAllSSE, closeDatabases, createCacheMiddleware, createConsoleExporter, createCorsMiddleware, createCronContext, createKV, createMemoryCronScheduler, createMemoryDriver, createMemoryQueueDriver, createMemoryRateLimitStore, createMemoryStore, createObservabilityTracer, createOpenTelemetryExporter, createRateLimitMiddleware, createRoom, createSSEStream, createSpan, createStorage, createTracingMiddleware, createWebSocketMiddleware, defineCors, defineDatabase, defineQueue, defineRateLimit, defineRoom, defineSSE, defineScheduled, defineWebSocket, formatSSEMessage, generateRequestId, getAllQueueStats, getDatabaseHooks, getGlobalTracer, getQueueDefinitions, getQueueStats, getRequestId, getRoom, getRooms, getSSEConnections, getScheduledTasks, getSpan, getWebSocketDefinitions, handleClose, handleError, handleMessage, handleUpgrade, invalidateRouteCache, migrateDatabase, parseCron, rawSql as raw, rawSql, rawSql as sqlRaw, registerDb0Create, registerWebSocket, resetCronRunCounts, resolveRouteCacheRules, runMigrations, runScheduledTask, sendMessage, sendMessages, serveStatic, setGlobalTracer, setQueueDriver, sseHeaders, startCronScheduler, startQueueWorkers, startSpan, stopQueueWorkers, useCacheStore, useDatabase, useKV, useQueueDriver, useStorage, validateCron, withSpan };