UNPKG

theater-client

Version:

TypeScript client library for Theater actor system TCP protocol

52 lines 1.8 kB
/** * Low-level TCP connection to Theater server * Each connection is dedicated to a specific operation to avoid response multiplexing */ import { EventEmitter } from 'node:events'; import type { ManagementCommand, ManagementResponse } from '../types/protocol.js'; import type { TheaterClientConfig } from '../types/client.js'; /** * A single TCP connection to the Theater server * Implements the hygienic connection pattern - each operation gets its own connection */ export declare class TheaterConnection extends EventEmitter { private readonly host; private readonly port; private socket; private dataBuffer; private messageQueue; private messageWaiters; private messageListenerSetup; private _connected; private partialMessages; private lastCleanup; private readonly timeout; private readonly FRAGMENT_TIMEOUT; private readonly CLEANUP_INTERVAL; constructor(host: string, port: number, config?: Partial<TheaterClientConfig>); get connected(): boolean; private setupMessageListener; /** * Clean up expired partial messages */ private cleanupExpiredFragments; /** * Handle fragment reassembly */ private handleFragment; connect(): Promise<void>; private handleData; send(command: ManagementCommand): Promise<void>; waitForMessage(): Promise<ManagementResponse>; receive(): Promise<ManagementResponse>; /** * Register a handler for incoming messages (for event streaming) */ onMessage(handler: (message: ManagementResponse) => void): () => void; /** * Register a handler for connection errors (for event streaming) */ onError(handler: (error: Error) => void): () => void; close(): void; } //# sourceMappingURL=TheaterConnection.d.ts.map