1declare namespace InternalHttpParserBinding {
2  type Buffer = Uint8Array;
3  type Stream = object;
4
5  class HTTPParser {
6    static REQUEST: 1;
7    static RESPONSE: 2;
8
9    static kOnMessageBegin: 0;
10    static kOnHeaders: 1;
11    static kOnHeadersComplete: 2;
12    static kOnBody: 3;
13    static kOnMessageComplete: 4;
14    static kOnExecute: 5;
15    static kOnTimeout: 6;
16
17    static kLenientNone: number;
18    static kLenientHeaders: number;
19    static kLenientChunkedLength: number;
20    static kLenientKeepAlive: number;
21    static kLenientAll: number;
22
23    close(): void;
24    free(): void;
25    execute(buffer: Buffer): Error | Buffer;
26    finish(): Error | Buffer;
27    initialize(
28      type: number,
29      resource: object,
30      maxHeaderSize?: number,
31      lenient?: number,
32      headersTimeout?: number,
33    ): void;
34    pause(): void;
35    resume(): void;
36    consume(stream: Stream): void;
37    unconsume(): void;
38    getCurrentBuffer(): Buffer;
39  }
40}
41
42declare function InternalBinding(binding: 'http_parser'): {
43  methods: string[];
44  HTTPParser: typeof InternalHttpParserBinding.HTTPParser;
45};
46