@aegis-fluxion/core 0.7.2 → 0.9.0

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.
package/dist/index.d.cts CHANGED
@@ -1,12 +1,35 @@
1
1
  import { IncomingMessage } from 'node:http';
2
+ import { Readable } from 'node:stream';
2
3
  import WebSocket, { ClientOptions, ServerOptions } from 'ws';
3
4
 
4
5
  declare const SECURE_SERVER_ADAPTER_MESSAGE_VERSION = 1;
6
+ type SecureChunkSourceValue = Buffer | Uint8Array | ArrayBuffer | string;
5
7
  interface SecureEnvelope<TData = unknown> {
6
8
  event: string;
7
9
  data: TData;
8
10
  }
9
11
  type SecureBinaryPayload = Buffer | Uint8Array | Blob;
12
+ type SecureChunkedStreamSource = Buffer | Uint8Array | Readable | AsyncIterable<SecureChunkSourceValue>;
13
+ interface SecureChunkedStreamOptions {
14
+ chunkSizeBytes?: number;
15
+ metadata?: Record<string, unknown>;
16
+ totalBytes?: number;
17
+ signal?: AbortSignal;
18
+ }
19
+ interface SecureStreamSendResult {
20
+ streamId: string;
21
+ chunkCount: number;
22
+ totalBytes: number;
23
+ }
24
+ interface SecureIncomingStreamInfo {
25
+ streamId: string;
26
+ event: string;
27
+ metadata?: Record<string, unknown>;
28
+ totalBytes?: number;
29
+ startedAt: number;
30
+ }
31
+ type SecureServerStreamHandler = (stream: Readable, info: SecureIncomingStreamInfo, client: SecureServerClient) => void | Promise<void>;
32
+ type SecureClientStreamHandler = (stream: Readable, info: SecureIncomingStreamInfo) => void | Promise<void>;
10
33
  interface SecureAckOptions {
11
34
  timeoutMs?: number;
12
35
  }
@@ -29,6 +52,11 @@ interface SecureServerRateLimitOptions {
29
52
  disconnectCode?: number;
30
53
  disconnectReason?: string;
31
54
  }
55
+ interface SecureServerSessionResumptionOptions {
56
+ enabled?: boolean;
57
+ ticketTtlMs?: number;
58
+ maxCachedTickets?: number;
59
+ }
32
60
  type SecureServerAdapterMessageScope = "broadcast" | "room";
33
61
  interface SecureServerAdapterMessage {
34
62
  version: typeof SECURE_SERVER_ADAPTER_MESSAGE_VERSION;
@@ -47,6 +75,7 @@ interface SecureServerAdapter {
47
75
  interface SecureServerOptions extends ServerOptions {
48
76
  heartbeat?: SecureServerHeartbeatOptions;
49
77
  rateLimit?: SecureServerRateLimitOptions;
78
+ sessionResumption?: SecureServerSessionResumptionOptions;
50
79
  adapter?: SecureServerAdapter;
51
80
  }
52
81
  interface SecureClientReconnectOptions {
@@ -57,11 +86,16 @@ interface SecureClientReconnectOptions {
57
86
  jitterRatio?: number;
58
87
  maxAttempts?: number | null;
59
88
  }
89
+ interface SecureClientSessionResumptionOptions {
90
+ enabled?: boolean;
91
+ maxAcceptedTicketTtlMs?: number;
92
+ }
60
93
  interface SecureClientOptions {
61
94
  protocols?: string | string[];
62
95
  wsOptions?: ClientOptions;
63
96
  autoConnect?: boolean;
64
97
  reconnect?: boolean | SecureClientReconnectOptions;
98
+ sessionResumption?: boolean | SecureClientSessionResumptionOptions;
65
99
  }
66
100
  interface SecureServerClient {
67
101
  id: string;
@@ -69,6 +103,7 @@ interface SecureServerClient {
69
103
  request: IncomingMessage;
70
104
  metadata: ReadonlyMap<string, unknown>;
71
105
  emit: (event: string, data: unknown, callbackOrOptions?: SecureAckCallback | SecureAckOptions, maybeCallback?: SecureAckCallback) => boolean | Promise<unknown>;
106
+ emitStream: (event: string, source: SecureChunkedStreamSource, options?: SecureChunkedStreamOptions) => Promise<SecureStreamSendResult>;
72
107
  join: (room: string) => boolean;
73
108
  leave: (room: string) => boolean;
74
109
  leaveAll: () => number;
@@ -122,10 +157,12 @@ declare class SecureServer {
122
157
  private adapter;
123
158
  private readonly heartbeatConfig;
124
159
  private readonly rateLimitConfig;
160
+ private readonly sessionResumptionConfig;
125
161
  private heartbeatIntervalHandle;
126
162
  private readonly clientsById;
127
163
  private readonly clientIdBySocket;
128
164
  private readonly customEventHandlers;
165
+ private readonly streamEventHandlers;
129
166
  private readonly connectionHandlers;
130
167
  private readonly disconnectHandlers;
131
168
  private readonly readyHandlers;
@@ -136,6 +173,7 @@ declare class SecureServer {
136
173
  private readonly sharedSecretBySocket;
137
174
  private readonly encryptionKeyBySocket;
138
175
  private readonly pendingPayloadsBySocket;
176
+ private readonly incomingStreamsBySocket;
139
177
  private readonly pendingRpcRequestsBySocket;
140
178
  private readonly heartbeatStateBySocket;
141
179
  private readonly roomMembersByName;
@@ -143,6 +181,7 @@ declare class SecureServer {
143
181
  private readonly clientIpByClientId;
144
182
  private readonly rateLimitBucketsByClientId;
145
183
  private readonly rateLimitBucketsByIp;
184
+ private readonly sessionTicketStore;
146
185
  constructor(options: SecureServerOptions);
147
186
  get clientCount(): number;
148
187
  get serverId(): string;
@@ -159,16 +198,24 @@ declare class SecureServer {
159
198
  off(event: "ready", handler: SecureServerReadyHandler): this;
160
199
  off(event: "error", handler: SecureErrorHandler): this;
161
200
  off(event: string, handler: SecureServerEventHandler): this;
201
+ onStream(event: string, handler: SecureServerStreamHandler): this;
202
+ offStream(event: string, handler: SecureServerStreamHandler): this;
162
203
  use(middleware: SecureServerMiddleware): this;
163
204
  emit(event: string, data: unknown): this;
164
205
  emitTo(clientId: string, event: string, data: unknown): boolean;
165
206
  emitTo(clientId: string, event: string, data: unknown, callback: SecureAckCallback): boolean;
166
207
  emitTo(clientId: string, event: string, data: unknown, options: SecureAckOptions): Promise<unknown>;
167
208
  emitTo(clientId: string, event: string, data: unknown, options: SecureAckOptions, callback: SecureAckCallback): boolean;
209
+ emitStreamTo(clientId: string, event: string, source: SecureChunkedStreamSource, options?: SecureChunkedStreamOptions): Promise<SecureStreamSendResult>;
168
210
  to(room: string): SecureServerRoomOperator;
169
211
  close(code?: number, reason?: string): void;
170
212
  private resolveHeartbeatConfig;
171
213
  private resolveRateLimitConfig;
214
+ private resolveSessionResumptionConfig;
215
+ private pruneExpiredSessionTickets;
216
+ private evictSessionTicketsIfNeeded;
217
+ private getSessionTicket;
218
+ private issueSessionTicket;
172
219
  private createRateLimitBucket;
173
220
  private getOrCreateRateLimitBucket;
174
221
  private updateRateLimitBucket;
@@ -187,6 +234,15 @@ declare class SecureServer {
187
234
  private handleIncomingMessage;
188
235
  private handleDisconnection;
189
236
  private dispatchCustomEvent;
237
+ private getOrCreateIncomingServerStreams;
238
+ private cleanupIncomingStreamsForSocket;
239
+ private abortIncomingServerStream;
240
+ private dispatchServerStreamEvent;
241
+ private handleIncomingStreamStartFrame;
242
+ private handleIncomingStreamChunkFrame;
243
+ private handleIncomingStreamEndFrame;
244
+ private handleIncomingStreamAbortFrame;
245
+ private handleIncomingStreamFrame;
190
246
  private executeServerMiddleware;
191
247
  private applyMessageMiddleware;
192
248
  private resolveClientBySocket;
@@ -202,6 +258,8 @@ declare class SecureServer {
202
258
  private notifyError;
203
259
  private createServerHandshakeState;
204
260
  private sendInternalHandshake;
261
+ private sendResumeAck;
262
+ private handleResumeHandshake;
205
263
  private handleInternalHandshake;
206
264
  private isClientHandshakeReady;
207
265
  private sendOrQueuePayload;
@@ -221,10 +279,12 @@ declare class SecureClient {
221
279
  private readonly options;
222
280
  private socket;
223
281
  private readonly reconnectConfig;
282
+ private readonly sessionResumptionConfig;
224
283
  private reconnectAttemptCount;
225
284
  private reconnectTimer;
226
285
  private isManualDisconnectRequested;
227
286
  private readonly customEventHandlers;
287
+ private readonly streamEventHandlers;
228
288
  private readonly connectHandlers;
229
289
  private readonly disconnectHandlers;
230
290
  private readonly readyHandlers;
@@ -232,6 +292,8 @@ declare class SecureClient {
232
292
  private handshakeState;
233
293
  private pendingPayloadQueue;
234
294
  private readonly pendingRpcRequests;
295
+ private readonly incomingStreams;
296
+ private sessionTicket;
235
297
  constructor(url: string, options?: SecureClientOptions);
236
298
  get readyState(): number | null;
237
299
  isConnected(): boolean;
@@ -247,11 +309,15 @@ declare class SecureClient {
247
309
  off(event: "ready", handler: SecureClientReadyHandler): this;
248
310
  off(event: "error", handler: SecureErrorHandler): this;
249
311
  off(event: string, handler: SecureClientEventHandler): this;
312
+ onStream(event: string, handler: SecureClientStreamHandler): this;
313
+ offStream(event: string, handler: SecureClientStreamHandler): this;
250
314
  emit(event: string, data: unknown): boolean;
251
315
  emit(event: string, data: unknown, callback: SecureAckCallback): boolean;
252
316
  emit(event: string, data: unknown, options: SecureAckOptions): Promise<unknown>;
253
317
  emit(event: string, data: unknown, options: SecureAckOptions, callback: SecureAckCallback): boolean;
318
+ emitStream(event: string, source: SecureChunkedStreamSource, options?: SecureChunkedStreamOptions): Promise<SecureStreamSendResult>;
254
319
  private resolveReconnectConfig;
320
+ private resolveSessionResumptionConfig;
255
321
  private scheduleReconnect;
256
322
  private computeReconnectDelay;
257
323
  private clearReconnectTimer;
@@ -260,6 +326,14 @@ declare class SecureClient {
260
326
  private handleIncomingMessage;
261
327
  private handleDisconnect;
262
328
  private dispatchCustomEvent;
329
+ private cleanupIncomingStreams;
330
+ private abortIncomingClientStream;
331
+ private dispatchClientStreamEvent;
332
+ private handleIncomingClientStreamStartFrame;
333
+ private handleIncomingClientStreamChunkFrame;
334
+ private handleIncomingClientStreamEndFrame;
335
+ private handleIncomingClientStreamAbortFrame;
336
+ private handleIncomingStreamFrame;
263
337
  private notifyConnect;
264
338
  private notifyReady;
265
339
  private notifyError;
@@ -269,11 +343,18 @@ declare class SecureClient {
269
343
  private handleRpcRequest;
270
344
  private executeRpcRequestHandler;
271
345
  private rejectPendingRpcRequests;
346
+ private handleSessionTicket;
272
347
  private createClientHandshakeState;
273
348
  private sendInternalHandshake;
349
+ private shouldAttemptSessionResumption;
350
+ private sendResumeHandshake;
351
+ private completeFullHandshake;
352
+ private fallbackToFullHandshake;
353
+ private handleServerHelloHandshake;
354
+ private handleResumeAckHandshake;
274
355
  private handleInternalHandshake;
275
356
  private isHandshakeReady;
276
357
  private flushPendingPayloadQueue;
277
358
  }
278
359
 
279
- export { type SecureAckCallback, type SecureAckOptions, type SecureBinaryPayload, SecureClient, type SecureClientConnectHandler, type SecureClientDisconnectHandler, type SecureClientEventHandler, type SecureClientEventMap, type SecureClientLifecycleEvent, type SecureClientOptions, type SecureClientReadyHandler, type SecureClientReconnectOptions, type SecureEnvelope, type SecureErrorHandler, SecureServer, type SecureServerAdapter, type SecureServerAdapterMessage, type SecureServerAdapterMessageScope, type SecureServerClient, type SecureServerConnectionHandler, type SecureServerConnectionMiddlewareContext, type SecureServerDisconnectHandler, type SecureServerEventHandler, type SecureServerEventMap, type SecureServerHeartbeatOptions, type SecureServerLifecycleEvent, type SecureServerMessageMiddlewareContext, type SecureServerMiddleware, type SecureServerMiddlewareContext, type SecureServerMiddlewareNext, type SecureServerOptions, type SecureServerRateLimitAction, type SecureServerRateLimitOptions, type SecureServerReadyHandler, type SecureServerRoomOperator, normalizeSecureServerAdapterMessage };
360
+ export { type SecureAckCallback, type SecureAckOptions, type SecureBinaryPayload, type SecureChunkedStreamOptions, type SecureChunkedStreamSource, SecureClient, type SecureClientConnectHandler, type SecureClientDisconnectHandler, type SecureClientEventHandler, type SecureClientEventMap, type SecureClientLifecycleEvent, type SecureClientOptions, type SecureClientReadyHandler, type SecureClientReconnectOptions, type SecureClientSessionResumptionOptions, type SecureClientStreamHandler, type SecureEnvelope, type SecureErrorHandler, type SecureIncomingStreamInfo, SecureServer, type SecureServerAdapter, type SecureServerAdapterMessage, type SecureServerAdapterMessageScope, type SecureServerClient, type SecureServerConnectionHandler, type SecureServerConnectionMiddlewareContext, type SecureServerDisconnectHandler, type SecureServerEventHandler, type SecureServerEventMap, type SecureServerHeartbeatOptions, type SecureServerLifecycleEvent, type SecureServerMessageMiddlewareContext, type SecureServerMiddleware, type SecureServerMiddlewareContext, type SecureServerMiddlewareNext, type SecureServerOptions, type SecureServerRateLimitAction, type SecureServerRateLimitOptions, type SecureServerReadyHandler, type SecureServerRoomOperator, type SecureServerSessionResumptionOptions, type SecureServerStreamHandler, type SecureStreamSendResult, normalizeSecureServerAdapterMessage };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,35 @@
1
1
  import { IncomingMessage } from 'node:http';
2
+ import { Readable } from 'node:stream';
2
3
  import WebSocket, { ClientOptions, ServerOptions } from 'ws';
3
4
 
4
5
  declare const SECURE_SERVER_ADAPTER_MESSAGE_VERSION = 1;
6
+ type SecureChunkSourceValue = Buffer | Uint8Array | ArrayBuffer | string;
5
7
  interface SecureEnvelope<TData = unknown> {
6
8
  event: string;
7
9
  data: TData;
8
10
  }
9
11
  type SecureBinaryPayload = Buffer | Uint8Array | Blob;
12
+ type SecureChunkedStreamSource = Buffer | Uint8Array | Readable | AsyncIterable<SecureChunkSourceValue>;
13
+ interface SecureChunkedStreamOptions {
14
+ chunkSizeBytes?: number;
15
+ metadata?: Record<string, unknown>;
16
+ totalBytes?: number;
17
+ signal?: AbortSignal;
18
+ }
19
+ interface SecureStreamSendResult {
20
+ streamId: string;
21
+ chunkCount: number;
22
+ totalBytes: number;
23
+ }
24
+ interface SecureIncomingStreamInfo {
25
+ streamId: string;
26
+ event: string;
27
+ metadata?: Record<string, unknown>;
28
+ totalBytes?: number;
29
+ startedAt: number;
30
+ }
31
+ type SecureServerStreamHandler = (stream: Readable, info: SecureIncomingStreamInfo, client: SecureServerClient) => void | Promise<void>;
32
+ type SecureClientStreamHandler = (stream: Readable, info: SecureIncomingStreamInfo) => void | Promise<void>;
10
33
  interface SecureAckOptions {
11
34
  timeoutMs?: number;
12
35
  }
@@ -29,6 +52,11 @@ interface SecureServerRateLimitOptions {
29
52
  disconnectCode?: number;
30
53
  disconnectReason?: string;
31
54
  }
55
+ interface SecureServerSessionResumptionOptions {
56
+ enabled?: boolean;
57
+ ticketTtlMs?: number;
58
+ maxCachedTickets?: number;
59
+ }
32
60
  type SecureServerAdapterMessageScope = "broadcast" | "room";
33
61
  interface SecureServerAdapterMessage {
34
62
  version: typeof SECURE_SERVER_ADAPTER_MESSAGE_VERSION;
@@ -47,6 +75,7 @@ interface SecureServerAdapter {
47
75
  interface SecureServerOptions extends ServerOptions {
48
76
  heartbeat?: SecureServerHeartbeatOptions;
49
77
  rateLimit?: SecureServerRateLimitOptions;
78
+ sessionResumption?: SecureServerSessionResumptionOptions;
50
79
  adapter?: SecureServerAdapter;
51
80
  }
52
81
  interface SecureClientReconnectOptions {
@@ -57,11 +86,16 @@ interface SecureClientReconnectOptions {
57
86
  jitterRatio?: number;
58
87
  maxAttempts?: number | null;
59
88
  }
89
+ interface SecureClientSessionResumptionOptions {
90
+ enabled?: boolean;
91
+ maxAcceptedTicketTtlMs?: number;
92
+ }
60
93
  interface SecureClientOptions {
61
94
  protocols?: string | string[];
62
95
  wsOptions?: ClientOptions;
63
96
  autoConnect?: boolean;
64
97
  reconnect?: boolean | SecureClientReconnectOptions;
98
+ sessionResumption?: boolean | SecureClientSessionResumptionOptions;
65
99
  }
66
100
  interface SecureServerClient {
67
101
  id: string;
@@ -69,6 +103,7 @@ interface SecureServerClient {
69
103
  request: IncomingMessage;
70
104
  metadata: ReadonlyMap<string, unknown>;
71
105
  emit: (event: string, data: unknown, callbackOrOptions?: SecureAckCallback | SecureAckOptions, maybeCallback?: SecureAckCallback) => boolean | Promise<unknown>;
106
+ emitStream: (event: string, source: SecureChunkedStreamSource, options?: SecureChunkedStreamOptions) => Promise<SecureStreamSendResult>;
72
107
  join: (room: string) => boolean;
73
108
  leave: (room: string) => boolean;
74
109
  leaveAll: () => number;
@@ -122,10 +157,12 @@ declare class SecureServer {
122
157
  private adapter;
123
158
  private readonly heartbeatConfig;
124
159
  private readonly rateLimitConfig;
160
+ private readonly sessionResumptionConfig;
125
161
  private heartbeatIntervalHandle;
126
162
  private readonly clientsById;
127
163
  private readonly clientIdBySocket;
128
164
  private readonly customEventHandlers;
165
+ private readonly streamEventHandlers;
129
166
  private readonly connectionHandlers;
130
167
  private readonly disconnectHandlers;
131
168
  private readonly readyHandlers;
@@ -136,6 +173,7 @@ declare class SecureServer {
136
173
  private readonly sharedSecretBySocket;
137
174
  private readonly encryptionKeyBySocket;
138
175
  private readonly pendingPayloadsBySocket;
176
+ private readonly incomingStreamsBySocket;
139
177
  private readonly pendingRpcRequestsBySocket;
140
178
  private readonly heartbeatStateBySocket;
141
179
  private readonly roomMembersByName;
@@ -143,6 +181,7 @@ declare class SecureServer {
143
181
  private readonly clientIpByClientId;
144
182
  private readonly rateLimitBucketsByClientId;
145
183
  private readonly rateLimitBucketsByIp;
184
+ private readonly sessionTicketStore;
146
185
  constructor(options: SecureServerOptions);
147
186
  get clientCount(): number;
148
187
  get serverId(): string;
@@ -159,16 +198,24 @@ declare class SecureServer {
159
198
  off(event: "ready", handler: SecureServerReadyHandler): this;
160
199
  off(event: "error", handler: SecureErrorHandler): this;
161
200
  off(event: string, handler: SecureServerEventHandler): this;
201
+ onStream(event: string, handler: SecureServerStreamHandler): this;
202
+ offStream(event: string, handler: SecureServerStreamHandler): this;
162
203
  use(middleware: SecureServerMiddleware): this;
163
204
  emit(event: string, data: unknown): this;
164
205
  emitTo(clientId: string, event: string, data: unknown): boolean;
165
206
  emitTo(clientId: string, event: string, data: unknown, callback: SecureAckCallback): boolean;
166
207
  emitTo(clientId: string, event: string, data: unknown, options: SecureAckOptions): Promise<unknown>;
167
208
  emitTo(clientId: string, event: string, data: unknown, options: SecureAckOptions, callback: SecureAckCallback): boolean;
209
+ emitStreamTo(clientId: string, event: string, source: SecureChunkedStreamSource, options?: SecureChunkedStreamOptions): Promise<SecureStreamSendResult>;
168
210
  to(room: string): SecureServerRoomOperator;
169
211
  close(code?: number, reason?: string): void;
170
212
  private resolveHeartbeatConfig;
171
213
  private resolveRateLimitConfig;
214
+ private resolveSessionResumptionConfig;
215
+ private pruneExpiredSessionTickets;
216
+ private evictSessionTicketsIfNeeded;
217
+ private getSessionTicket;
218
+ private issueSessionTicket;
172
219
  private createRateLimitBucket;
173
220
  private getOrCreateRateLimitBucket;
174
221
  private updateRateLimitBucket;
@@ -187,6 +234,15 @@ declare class SecureServer {
187
234
  private handleIncomingMessage;
188
235
  private handleDisconnection;
189
236
  private dispatchCustomEvent;
237
+ private getOrCreateIncomingServerStreams;
238
+ private cleanupIncomingStreamsForSocket;
239
+ private abortIncomingServerStream;
240
+ private dispatchServerStreamEvent;
241
+ private handleIncomingStreamStartFrame;
242
+ private handleIncomingStreamChunkFrame;
243
+ private handleIncomingStreamEndFrame;
244
+ private handleIncomingStreamAbortFrame;
245
+ private handleIncomingStreamFrame;
190
246
  private executeServerMiddleware;
191
247
  private applyMessageMiddleware;
192
248
  private resolveClientBySocket;
@@ -202,6 +258,8 @@ declare class SecureServer {
202
258
  private notifyError;
203
259
  private createServerHandshakeState;
204
260
  private sendInternalHandshake;
261
+ private sendResumeAck;
262
+ private handleResumeHandshake;
205
263
  private handleInternalHandshake;
206
264
  private isClientHandshakeReady;
207
265
  private sendOrQueuePayload;
@@ -221,10 +279,12 @@ declare class SecureClient {
221
279
  private readonly options;
222
280
  private socket;
223
281
  private readonly reconnectConfig;
282
+ private readonly sessionResumptionConfig;
224
283
  private reconnectAttemptCount;
225
284
  private reconnectTimer;
226
285
  private isManualDisconnectRequested;
227
286
  private readonly customEventHandlers;
287
+ private readonly streamEventHandlers;
228
288
  private readonly connectHandlers;
229
289
  private readonly disconnectHandlers;
230
290
  private readonly readyHandlers;
@@ -232,6 +292,8 @@ declare class SecureClient {
232
292
  private handshakeState;
233
293
  private pendingPayloadQueue;
234
294
  private readonly pendingRpcRequests;
295
+ private readonly incomingStreams;
296
+ private sessionTicket;
235
297
  constructor(url: string, options?: SecureClientOptions);
236
298
  get readyState(): number | null;
237
299
  isConnected(): boolean;
@@ -247,11 +309,15 @@ declare class SecureClient {
247
309
  off(event: "ready", handler: SecureClientReadyHandler): this;
248
310
  off(event: "error", handler: SecureErrorHandler): this;
249
311
  off(event: string, handler: SecureClientEventHandler): this;
312
+ onStream(event: string, handler: SecureClientStreamHandler): this;
313
+ offStream(event: string, handler: SecureClientStreamHandler): this;
250
314
  emit(event: string, data: unknown): boolean;
251
315
  emit(event: string, data: unknown, callback: SecureAckCallback): boolean;
252
316
  emit(event: string, data: unknown, options: SecureAckOptions): Promise<unknown>;
253
317
  emit(event: string, data: unknown, options: SecureAckOptions, callback: SecureAckCallback): boolean;
318
+ emitStream(event: string, source: SecureChunkedStreamSource, options?: SecureChunkedStreamOptions): Promise<SecureStreamSendResult>;
254
319
  private resolveReconnectConfig;
320
+ private resolveSessionResumptionConfig;
255
321
  private scheduleReconnect;
256
322
  private computeReconnectDelay;
257
323
  private clearReconnectTimer;
@@ -260,6 +326,14 @@ declare class SecureClient {
260
326
  private handleIncomingMessage;
261
327
  private handleDisconnect;
262
328
  private dispatchCustomEvent;
329
+ private cleanupIncomingStreams;
330
+ private abortIncomingClientStream;
331
+ private dispatchClientStreamEvent;
332
+ private handleIncomingClientStreamStartFrame;
333
+ private handleIncomingClientStreamChunkFrame;
334
+ private handleIncomingClientStreamEndFrame;
335
+ private handleIncomingClientStreamAbortFrame;
336
+ private handleIncomingStreamFrame;
263
337
  private notifyConnect;
264
338
  private notifyReady;
265
339
  private notifyError;
@@ -269,11 +343,18 @@ declare class SecureClient {
269
343
  private handleRpcRequest;
270
344
  private executeRpcRequestHandler;
271
345
  private rejectPendingRpcRequests;
346
+ private handleSessionTicket;
272
347
  private createClientHandshakeState;
273
348
  private sendInternalHandshake;
349
+ private shouldAttemptSessionResumption;
350
+ private sendResumeHandshake;
351
+ private completeFullHandshake;
352
+ private fallbackToFullHandshake;
353
+ private handleServerHelloHandshake;
354
+ private handleResumeAckHandshake;
274
355
  private handleInternalHandshake;
275
356
  private isHandshakeReady;
276
357
  private flushPendingPayloadQueue;
277
358
  }
278
359
 
279
- export { type SecureAckCallback, type SecureAckOptions, type SecureBinaryPayload, SecureClient, type SecureClientConnectHandler, type SecureClientDisconnectHandler, type SecureClientEventHandler, type SecureClientEventMap, type SecureClientLifecycleEvent, type SecureClientOptions, type SecureClientReadyHandler, type SecureClientReconnectOptions, type SecureEnvelope, type SecureErrorHandler, SecureServer, type SecureServerAdapter, type SecureServerAdapterMessage, type SecureServerAdapterMessageScope, type SecureServerClient, type SecureServerConnectionHandler, type SecureServerConnectionMiddlewareContext, type SecureServerDisconnectHandler, type SecureServerEventHandler, type SecureServerEventMap, type SecureServerHeartbeatOptions, type SecureServerLifecycleEvent, type SecureServerMessageMiddlewareContext, type SecureServerMiddleware, type SecureServerMiddlewareContext, type SecureServerMiddlewareNext, type SecureServerOptions, type SecureServerRateLimitAction, type SecureServerRateLimitOptions, type SecureServerReadyHandler, type SecureServerRoomOperator, normalizeSecureServerAdapterMessage };
360
+ export { type SecureAckCallback, type SecureAckOptions, type SecureBinaryPayload, type SecureChunkedStreamOptions, type SecureChunkedStreamSource, SecureClient, type SecureClientConnectHandler, type SecureClientDisconnectHandler, type SecureClientEventHandler, type SecureClientEventMap, type SecureClientLifecycleEvent, type SecureClientOptions, type SecureClientReadyHandler, type SecureClientReconnectOptions, type SecureClientSessionResumptionOptions, type SecureClientStreamHandler, type SecureEnvelope, type SecureErrorHandler, type SecureIncomingStreamInfo, SecureServer, type SecureServerAdapter, type SecureServerAdapterMessage, type SecureServerAdapterMessageScope, type SecureServerClient, type SecureServerConnectionHandler, type SecureServerConnectionMiddlewareContext, type SecureServerDisconnectHandler, type SecureServerEventHandler, type SecureServerEventMap, type SecureServerHeartbeatOptions, type SecureServerLifecycleEvent, type SecureServerMessageMiddlewareContext, type SecureServerMiddleware, type SecureServerMiddlewareContext, type SecureServerMiddlewareNext, type SecureServerOptions, type SecureServerRateLimitAction, type SecureServerRateLimitOptions, type SecureServerReadyHandler, type SecureServerRoomOperator, type SecureServerSessionResumptionOptions, type SecureServerStreamHandler, type SecureStreamSendResult, normalizeSecureServerAdapterMessage };