import { AssistantStreamChunk } from "./AssistantStreamChunk.js";

//#region src/core/AssistantStream.d.ts
/**
 * Stream of assistant-ui protocol chunks.
 *
 * `AssistantStream` is the normalized internal stream format used by
 * encoders, decoders, accumulators, and tool execution transforms. Use an
 * encoder such as `DataStreamEncoder` when returning it from an HTTP route,
 * and the matching decoder when reading it back from a response.
 */
type AssistantStream = ReadableStream<AssistantStreamChunk>;
/**
 * Encoder that converts an {@link AssistantStream} into bytes suitable for an
 * HTTP response body.
 *
 * Encoders may expose response headers, such as content type or protocol
 * markers, through `headers`.
 */
type AssistantStreamEncoder = ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk> & {
  headers?: Headers;
};
declare const AssistantStream: {
  /**
   * Converts an {@link AssistantStream} into a `Response` using the supplied
   * encoder.
   *
   * The encoder's `headers` are copied onto the response. Pair this with the
   * decoder for the same wire format when consuming the response.
   */
  toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder): Response;
  /**
   * Reads an assistant stream from a `Response` body using the supplied
   * decoder.
   *
   * The response body must be present and encoded with the matching assistant
   * stream wire format.
   */
  fromResponse(response: Response, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
  /**
   * Pipes an {@link AssistantStream} through an encoder and returns the
   * resulting byte stream.
   */
  toByteStream(stream: AssistantStream, transformer: ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk>): ReadableStream<Uint8Array<ArrayBuffer>>;
  /**
   * Pipes a byte stream through a decoder and returns normalized
   * {@link AssistantStreamChunk} values.
   */
  fromByteStream(readable: ReadableStream<Uint8Array<ArrayBuffer>>, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
};
//#endregion
export { AssistantStream, AssistantStreamEncoder };
//# sourceMappingURL=AssistantStream.d.ts.map