1 import type { Disposable } from './disposable';
2 import type { ContentTypeEncoder, ContentTypeDecoder } from './encoding';
3 interface _MessageBuffer {
4 readonly encoding: RAL.MessageBufferEncoding;
6 * Append data to the message buffer.
8 * @param chunk the data to append.
10 append(chunk: Uint8Array | string): void;
12 * Tries to read the headers from the buffer
14 * @returns the header properties or undefined in not enough data can be read.
16 tryReadHeaders(): Map<string, string> | undefined;
18 * Tries to read the body of the given length.
20 * @param length the amount of bytes to read.
21 * @returns the data or undefined int less data is available.
23 tryReadBody(length: number): Uint8Array | undefined;
25 declare type _MessageBufferEncoding = 'ascii' | 'utf-8';
26 interface _ReadableStream {
27 onData(listener: (data: Uint8Array) => void): Disposable;
28 onClose(listener: () => void): Disposable;
29 onError(listener: (error: any) => void): Disposable;
30 onEnd(listener: () => void): Disposable;
32 interface _WritableStream {
33 onClose(listener: () => void): Disposable;
34 onError(listener: (error: any) => void): Disposable;
35 onEnd(listener: () => void): Disposable;
36 write(data: Uint8Array): Promise<void>;
37 write(data: string, encoding: _MessageBufferEncoding): Promise<void>;
40 interface _DuplexStream extends _ReadableStream, _WritableStream {
42 interface _TimeoutHandle {
43 _timerBrand: undefined;
45 interface _ImmediateHandle {
46 _immediateBrand: undefined;
49 readonly applicationJson: {
50 readonly encoder: ContentTypeEncoder;
51 readonly decoder: ContentTypeDecoder;
53 readonly messageBuffer: {
54 create(encoding: RAL.MessageBufferEncoding): RAL.MessageBuffer;
57 info(message?: any, ...optionalParams: any[]): void;
58 log(message?: any, ...optionalParams: any[]): void;
59 warn(message?: any, ...optionalParams: any[]): void;
60 error(message?: any, ...optionalParams: any[]): void;
63 setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): RAL.TimeoutHandle;
64 clearTimeout(handle: RAL.TimeoutHandle): void;
65 setImmediate(callback: (...args: any[]) => void, ...args: any[]): RAL.ImmediateHandle;
66 clearImmediate(handle: RAL.ImmediateHandle): void;
69 declare function RAL(): RAL;
70 declare namespace RAL {
71 type MessageBuffer = _MessageBuffer;
72 type MessageBufferEncoding = _MessageBufferEncoding;
73 type ReadableStream = _ReadableStream;
74 type WritableStream = _WritableStream;
75 type DuplexStream = _DuplexStream;
76 type TimeoutHandle = _TimeoutHandle;
77 type ImmediateHandle = _ImmediateHandle;
78 function install(ral: RAL): void;