/** * 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); get connected(): boolean; private setupMessageListener; /** * Clean up expired partial messages */ private cleanupExpiredFragments; /** * Handle fragment reassembly */ private handleFragment; connect(): Promise; private handleData; send(command: ManagementCommand): Promise; waitForMessage(): Promise; receive(): Promise; /** * 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