//#region src/StreamEventSource.d.ts
type EventCallback<T> = (event: T) => void;
type StreamEventSourceEventMap = {
  progress: ProgressEvent;
  complete: CompleteEvent;
  size: SizeEvent;
  completion: CompletionEvent;
  heartbeat: HeartbeatEvent;
  message: {
    id: string | undefined;
    data: string;
  };
  end: Array<unknown>;
  error: Error;
};
type ProgressEvent = {
  type: "progress";
  data: {
    /** Progress events are sent as a percentage of the total render time.
     * This is a number between 0 and 1.
     */
    progress: number;
  };
};
type CompleteEvent = {
  type: "complete";
  data: object;
};
type SizeEvent = {
  type: "size";
  data: {
    size: number;
  };
};
type CompletionEvent = {
  type: "completion";
  data: {
    count: number;
  };
};
type HeartbeatEvent = {
  type: "heartbeat";
  data: {
    timestamp: string;
  };
};
declare class StreamEventSource {
  private stream;
  private activeReader;
  private decoder;
  private parser;
  private listeners;
  private abortController;
  constructor(stream: ReadableStream, abortController: AbortController);
  on<K extends keyof StreamEventSourceEventMap>(event: K, callback: EventCallback<StreamEventSourceEventMap[K]>): this;
  off<K extends keyof StreamEventSourceEventMap>(event: K, callback: EventCallback<StreamEventSourceEventMap[K]>): this;
  protected emit<K extends keyof StreamEventSourceEventMap>(event: K, data: StreamEventSourceEventMap[K]): void;
  whenClosed(): Promise<void>;
  private startReading;
  close(): void;
  abort(): void;
}
//#endregion
export { CompleteEvent, CompletionEvent, EventCallback, ProgressEvent, StreamEventSource, StreamEventSourceEventMap };
//# sourceMappingURL=StreamEventSource.d.cts.map