import type EventSourceBrowser from 'event-source-polyfill'; import type EventSourceNodeJs from 'eventsource'; import { EventEmitter } from './event-emitter'; type NodeOnOpen = EventSourceNodeJs['onopen']; type NodeOnMessage = EventSourceNodeJs['onmessage']; type NodeOnError = EventSourceNodeJs['onerror']; type NodeOpenEvent = Parameters[0]; type NodeMessageEvent = Parameters[0]; type NodeErrorEvent = Parameters[0]; type BrowserOnOpen = NonNullable; type BrowserOnMessage = NonNullable; type BrowserOnError = NonNullable; type BrowserOpenEvent = Parameters[0]; type BrowserMessageEvent = Parameters[0]; type BrowserErrorEvent = Parameters[0]; export type OpenEvent = NodeOpenEvent | BrowserOpenEvent; export type MessageEvent = NodeMessageEvent | BrowserMessageEvent; export type ErrorEvent = NodeErrorEvent | BrowserErrorEvent; export type Events = { open: OpenEvent; message: MessageEvent; error: ErrorEvent; }; export type Props = { headers?: Record; }; export type EventSourceEmitter = { on: EventEmitter['on']; close: () => void; }; export declare const listenEventSource: (url: string, props?: Props) => Promise; export {};