@blit-sh/core 0.17.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.
Files changed (73) hide show
  1. package/dist/BlitConnection.d.ts +132 -0
  2. package/dist/BlitConnection.d.ts.map +1 -0
  3. package/dist/BlitConnection.js +875 -0
  4. package/dist/BlitConnection.js.map +1 -0
  5. package/dist/BlitWorkspace.d.ts +65 -0
  6. package/dist/BlitWorkspace.d.ts.map +1 -0
  7. package/dist/BlitWorkspace.js +298 -0
  8. package/dist/BlitWorkspace.js.map +1 -0
  9. package/dist/TerminalStore.d.ts +125 -0
  10. package/dist/TerminalStore.d.ts.map +1 -0
  11. package/dist/TerminalStore.js +468 -0
  12. package/dist/TerminalStore.js.map +1 -0
  13. package/dist/bsp/dsl.d.ts +56 -0
  14. package/dist/bsp/dsl.d.ts.map +1 -0
  15. package/dist/bsp/dsl.js +247 -0
  16. package/dist/bsp/dsl.js.map +1 -0
  17. package/dist/bsp/index.d.ts +5 -0
  18. package/dist/bsp/index.d.ts.map +1 -0
  19. package/dist/bsp/index.js +3 -0
  20. package/dist/bsp/index.js.map +1 -0
  21. package/dist/bsp/layout.d.ts +32 -0
  22. package/dist/bsp/layout.d.ts.map +1 -0
  23. package/dist/bsp/layout.js +84 -0
  24. package/dist/bsp/layout.js.map +1 -0
  25. package/dist/gl-renderer.d.ts +10 -0
  26. package/dist/gl-renderer.d.ts.map +1 -0
  27. package/dist/gl-renderer.js +297 -0
  28. package/dist/gl-renderer.js.map +1 -0
  29. package/dist/index.d.ts +19 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +13 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/keyboard.d.ts +7 -0
  34. package/dist/keyboard.d.ts.map +1 -0
  35. package/dist/keyboard.js +118 -0
  36. package/dist/keyboard.js.map +1 -0
  37. package/dist/measure.d.ts +19 -0
  38. package/dist/measure.d.ts.map +1 -0
  39. package/dist/measure.js +55 -0
  40. package/dist/measure.js.map +1 -0
  41. package/dist/palettes.d.ts +3 -0
  42. package/dist/palettes.d.ts.map +1 -0
  43. package/dist/palettes.js +803 -0
  44. package/dist/palettes.js.map +1 -0
  45. package/dist/protocol.d.ts +34 -0
  46. package/dist/protocol.d.ts.map +1 -0
  47. package/dist/protocol.js +195 -0
  48. package/dist/protocol.js.map +1 -0
  49. package/dist/transports/index.d.ts +8 -0
  50. package/dist/transports/index.d.ts.map +1 -0
  51. package/dist/transports/index.js +5 -0
  52. package/dist/transports/index.js.map +1 -0
  53. package/dist/transports/webrtc-share.d.ts +11 -0
  54. package/dist/transports/webrtc-share.d.ts.map +1 -0
  55. package/dist/transports/webrtc-share.js +299 -0
  56. package/dist/transports/webrtc-share.js.map +1 -0
  57. package/dist/transports/webrtc.d.ts +11 -0
  58. package/dist/transports/webrtc.d.ts.map +1 -0
  59. package/dist/transports/webrtc.js +234 -0
  60. package/dist/transports/webrtc.js.map +1 -0
  61. package/dist/transports/websocket.d.ts +37 -0
  62. package/dist/transports/websocket.d.ts.map +1 -0
  63. package/dist/transports/websocket.js +200 -0
  64. package/dist/transports/websocket.js.map +1 -0
  65. package/dist/transports/webtransport.d.ts +53 -0
  66. package/dist/transports/webtransport.d.ts.map +1 -0
  67. package/dist/transports/webtransport.js +277 -0
  68. package/dist/transports/webtransport.js.map +1 -0
  69. package/dist/types.d.ts +163 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +42 -0
  72. package/dist/types.js.map +1 -0
  73. package/package.json +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlitConnection.js","sourceRoot":"","sources":["../src/BlitConnection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { BlitConnection, type CreateBlitConnectionOptions } from "./BlitConnection";
2
+ import type { BlitConnectionSnapshot, BlitSearchResult, BlitSession, BlitTransport, BlitWorkspaceSnapshot, ConnectionId, SessionId, TransportConfig } from "./types";
3
+ import type { BlitWasmModule } from "./TerminalStore";
4
+ export interface AddBlitConnectionOptions extends Omit<CreateBlitConnectionOptions, "wasm" | "transport"> {
5
+ transport?: BlitTransport | TransportConfig;
6
+ wasm?: BlitWasmModule | Promise<BlitWasmModule>;
7
+ }
8
+ export interface CreateBlitWorkspaceOptions {
9
+ wasm: BlitWasmModule | Promise<BlitWasmModule>;
10
+ connections?: AddBlitConnectionOptions[];
11
+ }
12
+ export interface CreateWorkspaceSessionOptions {
13
+ connectionId: ConnectionId;
14
+ rows: number;
15
+ cols: number;
16
+ tag?: string;
17
+ command?: string;
18
+ cwdFromSessionId?: SessionId;
19
+ }
20
+ export interface ResizeWorkspaceSessionOptions {
21
+ sessionId: SessionId;
22
+ rows: number;
23
+ cols: number;
24
+ }
25
+ export declare class BlitWorkspace {
26
+ private readonly listeners;
27
+ private readonly connectionListeners;
28
+ private readonly connections;
29
+ private readonly defaultWasm;
30
+ private snapshot;
31
+ constructor({ wasm, connections }: CreateBlitWorkspaceOptions);
32
+ subscribe: (listener: () => void) => (() => void);
33
+ getSnapshot: () => BlitWorkspaceSnapshot;
34
+ addConnection(options: AddBlitConnectionOptions): BlitConnection;
35
+ removeConnection(connectionId: ConnectionId): void;
36
+ dispose(): void;
37
+ getConnection(connectionId: ConnectionId): BlitConnection | null;
38
+ getConnectionSnapshot(connectionId: ConnectionId): BlitConnectionSnapshot | null;
39
+ getSession(sessionId: SessionId): BlitSession | null;
40
+ createSession(options: CreateWorkspaceSessionOptions): Promise<BlitSession>;
41
+ closeSession(sessionId: SessionId): Promise<void>;
42
+ restartSession(sessionId: SessionId): void;
43
+ killSession(sessionId: SessionId, signal?: number): void;
44
+ focusSession(sessionId: SessionId | null): void;
45
+ reconnectConnection(connectionId: ConnectionId): void;
46
+ sendInput(sessionId: SessionId, data: Uint8Array): void;
47
+ resizeSession(sessionId: SessionId, rows: number, cols: number): void;
48
+ clearSessionSize(sessionId: SessionId): void;
49
+ clearSessionSizes(sessionIds: Iterable<SessionId>): void;
50
+ resizeSessions(entries: Iterable<ResizeWorkspaceSessionOptions>): void;
51
+ scrollSession(sessionId: SessionId, offset: number): void;
52
+ sendMouse(sessionId: SessionId, type: number, button: number, col: number, row: number): void;
53
+ search(query: string, scope?: {
54
+ connectionId?: ConnectionId;
55
+ }): Promise<BlitSearchResult[]>;
56
+ setVisibleSessions(sessionIds: Iterable<SessionId>): void;
57
+ getConnectionDebugStats(connectionId: ConnectionId, sessionId: SessionId | null): ReturnType<BlitConnection["getDebugStats"]> | null;
58
+ private emit;
59
+ private recomputeSnapshot;
60
+ private resolveFocusedSessionId;
61
+ private requireConnection;
62
+ private requireSession;
63
+ }
64
+ export declare function createBlitWorkspace(options: CreateBlitWorkspaceOptions): BlitWorkspace;
65
+ //# sourceMappingURL=BlitWorkspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlitWorkspace.d.ts","sourceRoot":"","sources":["../src/BlitWorkspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,298 @@
1
+ import { BlitConnection, } from "./BlitConnection";
2
+ import { WebSocketTransport } from "./transports/websocket";
3
+ import { WebTransportTransport } from "./transports/webtransport";
4
+ import { createShareTransport } from "./transports/webrtc-share";
5
+ function workspaceError(message) {
6
+ return new Error(message);
7
+ }
8
+ export class BlitWorkspace {
9
+ constructor({ wasm, connections = [] }) {
10
+ this.listeners = new Set();
11
+ this.connectionListeners = new Map();
12
+ this.connections = new Map();
13
+ this.snapshot = {
14
+ connections: [],
15
+ sessions: [],
16
+ focusedSessionId: null,
17
+ ready: false,
18
+ };
19
+ this.subscribe = (listener) => {
20
+ this.listeners.add(listener);
21
+ return () => {
22
+ this.listeners.delete(listener);
23
+ };
24
+ };
25
+ this.getSnapshot = () => this.snapshot;
26
+ this.defaultWasm = wasm;
27
+ for (const connection of connections) {
28
+ this.addConnection(connection);
29
+ }
30
+ }
31
+ addConnection(options) {
32
+ if (this.connections.has(options.id)) {
33
+ throw workspaceError(`Connection ${options.id} already exists`);
34
+ }
35
+ const transport = resolveTransport(options.transport);
36
+ const connection = new BlitConnection({
37
+ ...options,
38
+ transport,
39
+ wasm: options.wasm ?? this.defaultWasm,
40
+ });
41
+ this.connections.set(options.id, connection);
42
+ this.connectionListeners.set(options.id, connection.subscribe(() => this.recomputeSnapshot()));
43
+ this.recomputeSnapshot();
44
+ return connection;
45
+ }
46
+ removeConnection(connectionId) {
47
+ const connection = this.connections.get(connectionId);
48
+ if (!connection)
49
+ return;
50
+ this.connectionListeners.get(connectionId)?.();
51
+ this.connectionListeners.delete(connectionId);
52
+ this.connections.delete(connectionId);
53
+ connection.close();
54
+ connection.dispose();
55
+ this.recomputeSnapshot();
56
+ }
57
+ dispose() {
58
+ for (const connectionId of [...this.connections.keys()]) {
59
+ this.removeConnection(connectionId);
60
+ }
61
+ this.listeners.clear();
62
+ }
63
+ getConnection(connectionId) {
64
+ return this.connections.get(connectionId) ?? null;
65
+ }
66
+ getConnectionSnapshot(connectionId) {
67
+ return (this.snapshot.connections.find((connection) => connection.id === connectionId) ?? null);
68
+ }
69
+ getSession(sessionId) {
70
+ return (this.snapshot.sessions.find((session) => session.id === sessionId) ?? null);
71
+ }
72
+ async createSession(options) {
73
+ const connection = this.requireConnection(options.connectionId);
74
+ if (options.cwdFromSessionId) {
75
+ const sourceSession = this.requireSession(options.cwdFromSessionId);
76
+ if (sourceSession.connectionId !== options.connectionId) {
77
+ throw workspaceError(`Cannot create a session in ${options.connectionId} from session ${options.cwdFromSessionId}`);
78
+ }
79
+ }
80
+ const session = await connection.createSession({
81
+ rows: options.rows,
82
+ cols: options.cols,
83
+ tag: options.tag,
84
+ command: options.command,
85
+ cwdFromSessionId: options.cwdFromSessionId,
86
+ });
87
+ return session;
88
+ }
89
+ async closeSession(sessionId) {
90
+ const session = this.requireSession(sessionId);
91
+ const connection = this.requireConnection(session.connectionId);
92
+ await connection.closeSession(sessionId);
93
+ }
94
+ restartSession(sessionId) {
95
+ const session = this.getSession(sessionId);
96
+ if (!session)
97
+ return;
98
+ this.requireConnection(session.connectionId).restartSession(sessionId);
99
+ }
100
+ killSession(sessionId, signal = 15) {
101
+ const session = this.getSession(sessionId);
102
+ if (!session)
103
+ return;
104
+ this.requireConnection(session.connectionId).killSession(sessionId, signal);
105
+ }
106
+ focusSession(sessionId) {
107
+ if (sessionId === null) {
108
+ this.snapshot = {
109
+ ...this.snapshot,
110
+ focusedSessionId: null,
111
+ };
112
+ this.emit();
113
+ return;
114
+ }
115
+ const session = this.getSession(sessionId);
116
+ if (!session)
117
+ return;
118
+ this.requireConnection(session.connectionId).focusSession(sessionId);
119
+ if (this.snapshot.focusedSessionId !== sessionId) {
120
+ this.snapshot = {
121
+ ...this.snapshot,
122
+ focusedSessionId: sessionId,
123
+ };
124
+ this.emit();
125
+ }
126
+ }
127
+ reconnectConnection(connectionId) {
128
+ this.requireConnection(connectionId).reconnect();
129
+ }
130
+ sendInput(sessionId, data) {
131
+ const session = this.getSession(sessionId);
132
+ if (!session)
133
+ return;
134
+ this.requireConnection(session.connectionId).sendInput(sessionId, data);
135
+ }
136
+ resizeSession(sessionId, rows, cols) {
137
+ this.resizeSessions([{ sessionId, rows, cols }]);
138
+ }
139
+ clearSessionSize(sessionId) {
140
+ this.clearSessionSizes([sessionId]);
141
+ }
142
+ clearSessionSizes(sessionIds) {
143
+ const sessionIdsByConnection = new Map();
144
+ for (const sessionId of sessionIds) {
145
+ const session = this.getSession(sessionId);
146
+ if (!session)
147
+ continue;
148
+ let bucket = sessionIdsByConnection.get(session.connectionId);
149
+ if (!bucket) {
150
+ bucket = [];
151
+ sessionIdsByConnection.set(session.connectionId, bucket);
152
+ }
153
+ bucket.push(sessionId);
154
+ }
155
+ for (const [connectionId, bucket] of sessionIdsByConnection) {
156
+ this.requireConnection(connectionId).clearSessionSizes(bucket);
157
+ }
158
+ }
159
+ resizeSessions(entries) {
160
+ const entriesByConnection = new Map();
161
+ for (const entry of entries) {
162
+ const session = this.getSession(entry.sessionId);
163
+ if (!session)
164
+ continue;
165
+ let bucket = entriesByConnection.get(session.connectionId);
166
+ if (!bucket) {
167
+ bucket = [];
168
+ entriesByConnection.set(session.connectionId, bucket);
169
+ }
170
+ bucket.push(entry);
171
+ }
172
+ for (const [connectionId, bucket] of entriesByConnection) {
173
+ this.requireConnection(connectionId).resizeSessions(bucket);
174
+ }
175
+ }
176
+ scrollSession(sessionId, offset) {
177
+ const session = this.getSession(sessionId);
178
+ if (!session)
179
+ return;
180
+ this.requireConnection(session.connectionId).scrollSession(sessionId, offset);
181
+ }
182
+ sendMouse(sessionId, type, button, col, row) {
183
+ const session = this.getSession(sessionId);
184
+ if (!session)
185
+ return;
186
+ this.requireConnection(session.connectionId).sendMouse(sessionId, type, button, col, row);
187
+ }
188
+ async search(query, scope) {
189
+ const trimmed = query.trim();
190
+ if (trimmed.length === 0)
191
+ return [];
192
+ if (scope?.connectionId) {
193
+ return this.requireConnection(scope.connectionId).search(trimmed);
194
+ }
195
+ const results = await Promise.all([...this.connections.values()].map(async (connection) => {
196
+ try {
197
+ return await connection.search(trimmed);
198
+ }
199
+ catch {
200
+ return [];
201
+ }
202
+ }));
203
+ return results.flat().sort((left, right) => right.score - left.score);
204
+ }
205
+ setVisibleSessions(sessionIds) {
206
+ const desiredByConnection = new Map();
207
+ for (const sessionId of sessionIds) {
208
+ const session = this.getSession(sessionId);
209
+ if (!session)
210
+ continue;
211
+ let set = desiredByConnection.get(session.connectionId);
212
+ if (!set) {
213
+ set = new Set();
214
+ desiredByConnection.set(session.connectionId, set);
215
+ }
216
+ set.add(sessionId);
217
+ }
218
+ for (const [connectionId, connection] of this.connections) {
219
+ connection.setVisibleSessionIds(desiredByConnection.get(connectionId) ?? []);
220
+ }
221
+ }
222
+ getConnectionDebugStats(connectionId, sessionId) {
223
+ return this.connections.get(connectionId)?.getDebugStats(sessionId) ?? null;
224
+ }
225
+ emit() {
226
+ for (const listener of this.listeners)
227
+ listener();
228
+ }
229
+ recomputeSnapshot() {
230
+ const connections = [...this.connections.values()].map((connection) => connection.getSnapshot());
231
+ const sessions = connections.flatMap((connection) => connection.sessions);
232
+ const focusedSessionId = this.resolveFocusedSessionId(connections, sessions);
233
+ this.snapshot = {
234
+ connections,
235
+ sessions,
236
+ focusedSessionId,
237
+ ready: connections.length > 0 &&
238
+ connections.every((connection) => connection.ready),
239
+ };
240
+ this.emit();
241
+ }
242
+ resolveFocusedSessionId(connections, sessions) {
243
+ if (this.snapshot.focusedSessionId) {
244
+ const focused = sessions.find((session) => session.id === this.snapshot.focusedSessionId);
245
+ if (focused && focused.state !== "closed") {
246
+ return focused.id;
247
+ }
248
+ }
249
+ for (const connection of connections) {
250
+ if (!connection.focusedSessionId)
251
+ continue;
252
+ const focused = sessions.find((session) => session.id === connection.focusedSessionId);
253
+ if (focused && focused.state !== "closed") {
254
+ return focused.id;
255
+ }
256
+ }
257
+ return sessions.find((session) => session.state !== "closed")?.id ?? null;
258
+ }
259
+ requireConnection(connectionId) {
260
+ const connection = this.connections.get(connectionId);
261
+ if (!connection) {
262
+ throw workspaceError(`Unknown connection ${connectionId}`);
263
+ }
264
+ return connection;
265
+ }
266
+ requireSession(sessionId) {
267
+ const session = this.getSession(sessionId);
268
+ if (!session) {
269
+ throw workspaceError(`Unknown session ${sessionId}`);
270
+ }
271
+ return session;
272
+ }
273
+ }
274
+ export function createBlitWorkspace(options) {
275
+ return new BlitWorkspace(options);
276
+ }
277
+ function isTransportConfig(value) {
278
+ return value != null && "type" in value && typeof value.type === "string";
279
+ }
280
+ function resolveTransport(config) {
281
+ if (config == null) {
282
+ throw workspaceError("transport or TransportConfig is required");
283
+ }
284
+ if (!isTransportConfig(config)) {
285
+ return config;
286
+ }
287
+ switch (config.type) {
288
+ case "websocket":
289
+ return new WebSocketTransport(config.url, config.passphrase, config.options);
290
+ case "webtransport":
291
+ return new WebTransportTransport(config.url, config.passphrase, config.options);
292
+ case "share":
293
+ return createShareTransport(config.hubUrl, config.passphrase, config.debug);
294
+ case "custom":
295
+ return config.transport;
296
+ }
297
+ }
298
+ //# sourceMappingURL=BlitWorkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlitWorkspace.js","sourceRoot":"","sources":["../src/BlitWorkspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import type { Terminal } from "@blit-sh/browser";
2
+ import type { ConnectionStatus, TerminalPalette } from "./types";
3
+ import { type GlRenderer } from "./gl-renderer";
4
+ export type BlitWasmModule = typeof import("@blit-sh/browser");
5
+ export type TerminalDirtyListener = (ptyId: number) => void;
6
+ export interface TerminalStoreDelegate {
7
+ send(data: Uint8Array): void;
8
+ getStatus(): ConnectionStatus;
9
+ }
10
+ export declare class TerminalStore {
11
+ private mod;
12
+ private terminals;
13
+ private staleTerminals;
14
+ private retainCount;
15
+ private pendingFree;
16
+ private subscribed;
17
+ private desired;
18
+ private readonly delegate;
19
+ private dirtyListeners;
20
+ private leadPtyId;
21
+ private fontFamily;
22
+ private fontSize;
23
+ private cellPw;
24
+ private cellPh;
25
+ private palette;
26
+ private disposed;
27
+ private ready;
28
+ private readyListeners;
29
+ private frozenPtys;
30
+ /** Incremented every time any terminal's cell metrics are set, so renderers can detect stale state. */
31
+ metricsGeneration: number;
32
+ private frozenBuffers;
33
+ private sharedRenderer;
34
+ private sharedCanvas;
35
+ private displayFps;
36
+ private rafHandle;
37
+ private rafPrev;
38
+ private rafSamples;
39
+ private pendingAppliedFrames;
40
+ private ackAheadFrames;
41
+ private applyMsX10;
42
+ private metricsFlushQueued;
43
+ private metricsHeartbeat;
44
+ private pendingAcks;
45
+ /** Queued compressed payloads per PTY, drained in the rAF callback. */
46
+ private pendingFrames;
47
+ constructor(delegate: TerminalStoreDelegate, wasm: BlitWasmModule | Promise<BlitWasmModule>);
48
+ private nowMs;
49
+ private resetClientMetrics;
50
+ private queueClientMetricsFlush;
51
+ private startMetricsHeartbeat;
52
+ private stopMetricsHeartbeat;
53
+ private flushClientMetrics;
54
+ private noteAppliedFrame;
55
+ isReady(): boolean;
56
+ private _wasmMem;
57
+ /** Get the WASM linear memory for zero-copy typed array views. */
58
+ wasmMemory(): WebAssembly.Memory | null;
59
+ onReady(listener: () => void): () => void;
60
+ private createTerminal;
61
+ handleUpdate(ptyId: number, payload: Uint8Array): void;
62
+ handleStatusChange(status: ConnectionStatus): void;
63
+ getTerminal(ptyId: number): Terminal | null;
64
+ setLead(ptyId: number | null): void;
65
+ setFontFamily(fontFamily: string): void;
66
+ setFontSize(fontSize: number): void;
67
+ /** Get a shared GL renderer for readOnly (preview) terminals. */
68
+ getSharedRenderer(): {
69
+ renderer: GlRenderer;
70
+ canvas: HTMLCanvasElement;
71
+ } | null;
72
+ /**
73
+ * Drain queued compressed frames for a PTY into the WASM terminal.
74
+ * Called at the start of the rAF callback so decode + render happen
75
+ * in one JS turn, avoiding budget fragmentation.
76
+ * Returns true if any frames were applied.
77
+ */
78
+ drainPending(ptyId: number): boolean;
79
+ /** Mark the latest applied terminal state as painted to the screen. */
80
+ noteFrameRendered(): void;
81
+ getDebugStats(leadPtyId?: number | null): {
82
+ displayFps: number;
83
+ pendingApplied: number;
84
+ ackAhead: number;
85
+ applyMs: number;
86
+ mouseMode: number;
87
+ mouseEncoding: number;
88
+ terminals: number;
89
+ staleTerminals: number;
90
+ subscribed: number;
91
+ frozenPtys: number;
92
+ pendingFrameQueues: number;
93
+ totalPendingFrames: number;
94
+ };
95
+ invalidateAtlas(): void;
96
+ setPalette(palette: TerminalPalette): void;
97
+ setCellSize(pw: number, ph: number): void;
98
+ getCellSize(): {
99
+ pw: number;
100
+ ph: number;
101
+ };
102
+ /** Freeze a PTY: buffer incoming frames instead of applying them. */
103
+ freeze(ptyId: number): void;
104
+ isFrozen(ptyId: number): boolean;
105
+ /** Thaw a PTY: apply all buffered frames and resume normal updates. */
106
+ thaw(ptyId: number): void;
107
+ setDesiredSubscriptions(ptyIds: Set<number>): void;
108
+ /**
109
+ * Get the current retain count for a PTY.
110
+ */
111
+ getRetainCount(ptyId: number): number;
112
+ retain(ptyId: number): void;
113
+ release(ptyId: number): void;
114
+ freeTerminal(ptyId: number): void;
115
+ private doFree;
116
+ addDirtyListener(listener: TerminalDirtyListener): () => void;
117
+ private syncSubscriptions;
118
+ private sendDisplayFps;
119
+ private startRafProbe;
120
+ private stopRafProbe;
121
+ private resync;
122
+ /** Permanently destroy the store — free all WASM terminals and GL resources. */
123
+ destroy(): void;
124
+ }
125
+ //# sourceMappingURL=TerminalStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalStore.d.ts","sourceRoot":"","sources":["../src/TerminalStore.ts"],"names":[],"mappings":"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"}