import { StreamLineProvider } from './StreamLineProvider'; export type SSEState = { kind: 'idle'; } | { kind: 'connecting'; } | { kind: 'open'; } | { kind: 'reconnecting'; attempt: number; } | { kind: 'stopped'; }; export type SSEStateListener = (state: SSEState) => void; export type SSEMessageListener = (type: string, data: string) => void; export interface SSEClientOptions { projectId: string; notiflyUserId: string; deviceId: string | null; baseUrl: string; tokenProvider: () => Promise; sdkVersionHeader: string; backoffScheduleMs?: number[]; heartbeatTimeoutMs?: number; openStableThresholdMs?: number; provider?: StreamLineProvider; jitterProvider?: () => number; nowProvider?: () => number; initialLastEventId?: string | null; onLastEventIdChange?: (id: string) => void; } export declare class SSEClient { private readonly opts; private state; private lastEventIdInternal; private lastDataAt; private lastOpenAt; private runAbortController; private readonly onLastEventIdChange; onState: SSEStateListener | null; onMessage: SSEMessageListener | null; constructor(opts: SSEClientOptions); getState(): SSEState; getLastEventId(): string | null; connect(): void; disconnect(): void; private isStopped; private runConnectionLoop; private runOneConnection; private consumeStream; private runHeartbeatWatchdog; private transition; private emitState; private emitMessage; private backoffDelayMs; private buildUrl; private buildHeaders; } //# sourceMappingURL=SSEClient.d.ts.map