/**
 * @link https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#fields
 */
export type SSEFields = 'data' | 'event' | 'id' | 'retry';
/**
 * @example
 * const sseObject = {
 *    event: 'delta',
 *    data: '{ key: "world!" }',
 * };
 */
export type SSEOutput = Partial<Record<SSEFields, any>>;
export interface ArtStreamOptions<Output> {
    /**
     * @description 可读的二进制数据流
     * @link https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream
     */
    readableStream: ReadableStream<Uint8Array>;
    /**
     * @description 支持可定制的transformStream来转换流
     * @default sseTransformStream
     * @link https://developer.mozilla.org/en-US/docs/Web/API/TransformStream
     */
    transformStream?: TransformStream<string, Output>;
}
interface ArtReadableStream<R = any> extends ReadableStream<R> {
    [Symbol.asyncIterator](): AsyncGenerator<R, void, unknown>;
}
/**
 * @description 默认情况下，将 Uint8Array 二进制流转换为 {@link SSEOutput}
 * @warning "ArtStream" 仅支持 "utf-8" 编码。将来可能会有更多的编码支持。
 */
declare function ArtStream<Output = SSEOutput>(options: ArtStreamOptions<Output>): ArtReadableStream<Output>;
export default ArtStream;
