import type { EventSourceMessage } from './parse'; export declare const EventStreamContentType = "text/event-stream"; export interface FetchEventSourceInit extends RequestInit { /** * The request headers. FetchEventSource only supports the Record format. */ headers?: Record; /** * Called when a response is received. Use this to validate that the response * actually matches what you expect (and throw if it doesn't.) If not provided, * will default to a basic validation to ensure the content-type is text/event-stream. */ onopen?: (response: Response) => Promise; /** * Called when a message is received. NOTE: Unlike the default browser * EventSource.onmessage, this callback is called for _all_ events, * even ones with a custom `event` field. */ onmessage?: (ev: EventSourceMessage) => void; /** * Called when a response finishes. If you don't expect the server to kill * the connection, you can throw an exception here and retry using onerror. */ onclose?: () => void; /** * Called when there is any error making the request / processing messages / * handling callbacks etc. Use this to control the retry strategy: if the * error is fatal, rethrow the error inside the callback to stop the entire * operation. Otherwise, you can return an interval (in milliseconds) after * which the request will automatically retry (with the last-event-id). * If this callback is not specified, or it returns undefined, fetchEventSource * will treat every error as retriable and will try again after 1 second. */ onerror?: (err: any) => number | null | undefined | void; /** The Fetch function to use. Defaults to window.fetch */ fetch?: typeof fetch; /** 出错时自动重试次数,默认0 */ autoRetryTime?: number; /** 超时时间,单位毫秒,默认60*1000 */ timeout?: number; /** 是否debug模式,debug模式时会输出跟多详细日志 */ debug?: boolean; } /** * sse请求 */ export default function requestSse(input: RequestInfo, { signal: inputSignal, headers: inputHeaders, onopen: inputOnOpen, onmessage, onclose, onerror, fetch: inputFetch, autoRetryTime, timeout, debug, ...rest }: FetchEventSourceInit): Promise;