@h-lumos/llm-sdk
Version:
40 lines (39 loc) • 1.44 kB
TypeScript
/// <reference types="node" />
export type Bytes = string | ArrayBuffer | Uint8Array | Buffer | null | undefined;
export type ServerSentEvent = {
event: string | null;
data: string;
raw: string[];
};
export declare function iterMessages(response: Response, decoder: SSEDecoder, controller: AbortController): AsyncGenerator<ServerSentEvent, void, unknown>;
export declare class SSEDecoder {
private data;
private event;
private chunks;
constructor();
decode(line: string): ServerSentEvent | null;
}
/**
* A re-implementation of httpx's `LineDecoder` in Python that handles incrementally
* reading lines from text.
*
* https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258
*/
export declare class LineDecoder {
static NEWLINE_CHARS: Set<string>;
static NEWLINE_REGEXP: RegExp;
buffer: string[];
trailingCR: boolean;
textDecoder: any;
constructor();
decode(chunk: Bytes): string[];
decodeText(bytes: Bytes): string;
flush(): string[];
}
/**
* Most browsers don't yet have async iterable support for ReadableStream,
* and Node has a very different way of reading bytes from its "ReadableStream".
*
* This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490
*/
export declare function readableStreamAsyncIterable<T>(stream: any): AsyncIterableIterator<T>;