/** * SSE Handler for humancy-cloud real-time events * * Handles Server-Sent Events for decision updates. */ import { type SSEEvent } from './types.js'; /** * Configuration for SSE handler */ export interface SSEHandlerConfig { /** Maximum reconnection attempts */ maxReconnects: number; /** Base delay for reconnection in ms */ reconnectBaseDelayMs: number; /** Connection timeout in ms */ connectionTimeoutMs: number; /** Authorization headers */ authHeaders?: Record; } /** * SSE Handler for subscribing to decision events */ export declare class SSEHandler { private readonly config; private abortController?; private reconnectAttempts; constructor(config?: Partial); /** * Subscribe to decision events as an async generator * * Yields SSE events as they arrive. Handles reconnection automatically. */ subscribeToDecision(url: string): AsyncGenerator; /** * Stream events from the SSE endpoint */ private streamEvents; /** * Connect to the SSE endpoint */ private connect; /** * Parse SSE buffer into events * * SSE format: * event: event_name * data: json_data * * Events are separated by double newlines */ private parseSSEBuffer; /** * Parse event data into typed SSE event * * Transforms server event format to client schema format: * - SSE `event` field is the authoritative type (e.g., "decision:resolved") * - Server data.type is a generic category (e.g., "decision"), not the event type * - Server nests response data under `response: { selectedOptionId, respondedAt }` * - Client schema expects flat fields: `selectedOption`, `respondedAt` */ private parseEventData; /** * Close the SSE connection */ close(): void; /** * Sleep for specified milliseconds */ private sleep; } //# sourceMappingURL=sse.d.ts.map