Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959
  1. declare module "http2" {
  2. import * as events from "events";
  3. import * as fs from "fs";
  4. import * as net from "net";
  5. import * as stream from "stream";
  6. import * as tls from "tls";
  7. import * as url from "url";
  8. import { IncomingHttpHeaders as Http1IncomingHttpHeaders, OutgoingHttpHeaders, IncomingMessage, ServerResponse } from "http";
  9. export { OutgoingHttpHeaders } from "http";
  10. export interface IncomingHttpStatusHeader {
  11. ":status"?: number;
  12. }
  13. export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders {
  14. ":path"?: string;
  15. ":method"?: string;
  16. ":authority"?: string;
  17. ":scheme"?: string;
  18. }
  19. // Http2Stream
  20. export interface StreamPriorityOptions {
  21. exclusive?: boolean;
  22. parent?: number;
  23. weight?: number;
  24. silent?: boolean;
  25. }
  26. export interface StreamState {
  27. localWindowSize?: number;
  28. state?: number;
  29. localClose?: number;
  30. remoteClose?: number;
  31. sumDependencyWeight?: number;
  32. weight?: number;
  33. }
  34. export interface ServerStreamResponseOptions {
  35. endStream?: boolean;
  36. waitForTrailers?: boolean;
  37. }
  38. export interface StatOptions {
  39. offset: number;
  40. length: number;
  41. }
  42. export interface ServerStreamFileResponseOptions {
  43. statCheck?: (stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions) => void | boolean;
  44. waitForTrailers?: boolean;
  45. offset?: number;
  46. length?: number;
  47. }
  48. export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions {
  49. onError?: (err: NodeJS.ErrnoException) => void;
  50. }
  51. export class Http2Stream extends stream.Duplex {
  52. protected constructor();
  53. readonly aborted: boolean;
  54. readonly bufferSize: number;
  55. readonly closed: boolean;
  56. readonly destroyed: boolean;
  57. /**
  58. * Set the true if the END_STREAM flag was set in the request or response HEADERS frame received,
  59. * indicating that no additional data should be received and the readable side of the Http2Stream will be closed.
  60. */
  61. readonly endAfterHeaders: boolean;
  62. readonly pending: boolean;
  63. readonly rstCode: number;
  64. readonly sentHeaders: OutgoingHttpHeaders;
  65. readonly sentInfoHeaders?: OutgoingHttpHeaders[];
  66. readonly sentTrailers?: OutgoingHttpHeaders;
  67. readonly session: Http2Session;
  68. readonly state: StreamState;
  69. close(code?: number, callback?: () => void): void;
  70. priority(options: StreamPriorityOptions): void;
  71. setTimeout(msecs: number, callback?: () => void): void;
  72. sendTrailers(headers: OutgoingHttpHeaders): void;
  73. addListener(event: "aborted", listener: () => void): this;
  74. addListener(event: "close", listener: () => void): this;
  75. addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
  76. addListener(event: "drain", listener: () => void): this;
  77. addListener(event: "end", listener: () => void): this;
  78. addListener(event: "error", listener: (err: Error) => void): this;
  79. addListener(event: "finish", listener: () => void): this;
  80. addListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
  81. addListener(event: "pipe", listener: (src: stream.Readable) => void): this;
  82. addListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
  83. addListener(event: "streamClosed", listener: (code: number) => void): this;
  84. addListener(event: "timeout", listener: () => void): this;
  85. addListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
  86. addListener(event: "wantTrailers", listener: () => void): this;
  87. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  88. emit(event: "aborted"): boolean;
  89. emit(event: "close"): boolean;
  90. emit(event: "data", chunk: Buffer | string): boolean;
  91. emit(event: "drain"): boolean;
  92. emit(event: "end"): boolean;
  93. emit(event: "error", err: Error): boolean;
  94. emit(event: "finish"): boolean;
  95. emit(event: "frameError", frameType: number, errorCode: number): boolean;
  96. emit(event: "pipe", src: stream.Readable): boolean;
  97. emit(event: "unpipe", src: stream.Readable): boolean;
  98. emit(event: "streamClosed", code: number): boolean;
  99. emit(event: "timeout"): boolean;
  100. emit(event: "trailers", trailers: IncomingHttpHeaders, flags: number): boolean;
  101. emit(event: "wantTrailers"): boolean;
  102. emit(event: string | symbol, ...args: any[]): boolean;
  103. on(event: "aborted", listener: () => void): this;
  104. on(event: "close", listener: () => void): this;
  105. on(event: "data", listener: (chunk: Buffer | string) => void): this;
  106. on(event: "drain", listener: () => void): this;
  107. on(event: "end", listener: () => void): this;
  108. on(event: "error", listener: (err: Error) => void): this;
  109. on(event: "finish", listener: () => void): this;
  110. on(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
  111. on(event: "pipe", listener: (src: stream.Readable) => void): this;
  112. on(event: "unpipe", listener: (src: stream.Readable) => void): this;
  113. on(event: "streamClosed", listener: (code: number) => void): this;
  114. on(event: "timeout", listener: () => void): this;
  115. on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
  116. on(event: "wantTrailers", listener: () => void): this;
  117. on(event: string | symbol, listener: (...args: any[]) => void): this;
  118. once(event: "aborted", listener: () => void): this;
  119. once(event: "close", listener: () => void): this;
  120. once(event: "data", listener: (chunk: Buffer | string) => void): this;
  121. once(event: "drain", listener: () => void): this;
  122. once(event: "end", listener: () => void): this;
  123. once(event: "error", listener: (err: Error) => void): this;
  124. once(event: "finish", listener: () => void): this;
  125. once(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
  126. once(event: "pipe", listener: (src: stream.Readable) => void): this;
  127. once(event: "unpipe", listener: (src: stream.Readable) => void): this;
  128. once(event: "streamClosed", listener: (code: number) => void): this;
  129. once(event: "timeout", listener: () => void): this;
  130. once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
  131. once(event: "wantTrailers", listener: () => void): this;
  132. once(event: string | symbol, listener: (...args: any[]) => void): this;
  133. prependListener(event: "aborted", listener: () => void): this;
  134. prependListener(event: "close", listener: () => void): this;
  135. prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
  136. prependListener(event: "drain", listener: () => void): this;
  137. prependListener(event: "end", listener: () => void): this;
  138. prependListener(event: "error", listener: (err: Error) => void): this;
  139. prependListener(event: "finish", listener: () => void): this;
  140. prependListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
  141. prependListener(event: "pipe", listener: (src: stream.Readable) => void): this;
  142. prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
  143. prependListener(event: "streamClosed", listener: (code: number) => void): this;
  144. prependListener(event: "timeout", listener: () => void): this;
  145. prependListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
  146. prependListener(event: "wantTrailers", listener: () => void): this;
  147. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  148. prependOnceListener(event: "aborted", listener: () => void): this;
  149. prependOnceListener(event: "close", listener: () => void): this;
  150. prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
  151. prependOnceListener(event: "drain", listener: () => void): this;
  152. prependOnceListener(event: "end", listener: () => void): this;
  153. prependOnceListener(event: "error", listener: (err: Error) => void): this;
  154. prependOnceListener(event: "finish", listener: () => void): this;
  155. prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this;
  156. prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this;
  157. prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
  158. prependOnceListener(event: "streamClosed", listener: (code: number) => void): this;
  159. prependOnceListener(event: "timeout", listener: () => void): this;
  160. prependOnceListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this;
  161. prependOnceListener(event: "wantTrailers", listener: () => void): this;
  162. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  163. }
  164. export class ClientHttp2Stream extends Http2Stream {
  165. private constructor();
  166. addListener(event: "continue", listener: () => {}): this;
  167. addListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  168. addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
  169. addListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  170. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  171. emit(event: "continue"): boolean;
  172. emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
  173. emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean;
  174. emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
  175. emit(event: string | symbol, ...args: any[]): boolean;
  176. on(event: "continue", listener: () => {}): this;
  177. on(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  178. on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
  179. on(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  180. on(event: string | symbol, listener: (...args: any[]) => void): this;
  181. once(event: "continue", listener: () => {}): this;
  182. once(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  183. once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
  184. once(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  185. once(event: string | symbol, listener: (...args: any[]) => void): this;
  186. prependListener(event: "continue", listener: () => {}): this;
  187. prependListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  188. prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
  189. prependListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  190. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  191. prependOnceListener(event: "continue", listener: () => {}): this;
  192. prependOnceListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  193. prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
  194. prependOnceListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  195. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  196. }
  197. export class ServerHttp2Stream extends Http2Stream {
  198. private constructor();
  199. additionalHeaders(headers: OutgoingHttpHeaders): void;
  200. readonly headersSent: boolean;
  201. readonly pushAllowed: boolean;
  202. pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void;
  203. pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void;
  204. respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void;
  205. respondWithFD(fd: number, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void;
  206. respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void;
  207. }
  208. // Http2Session
  209. export interface Settings {
  210. headerTableSize?: number;
  211. enablePush?: boolean;
  212. initialWindowSize?: number;
  213. maxFrameSize?: number;
  214. maxConcurrentStreams?: number;
  215. maxHeaderListSize?: number;
  216. enableConnectProtocol?: boolean;
  217. }
  218. export interface ClientSessionRequestOptions {
  219. endStream?: boolean;
  220. exclusive?: boolean;
  221. parent?: number;
  222. weight?: number;
  223. waitForTrailers?: boolean;
  224. }
  225. export interface SessionState {
  226. effectiveLocalWindowSize?: number;
  227. effectiveRecvDataLength?: number;
  228. nextStreamID?: number;
  229. localWindowSize?: number;
  230. lastProcStreamID?: number;
  231. remoteWindowSize?: number;
  232. outboundQueueSize?: number;
  233. deflateDynamicTableSize?: number;
  234. inflateDynamicTableSize?: number;
  235. }
  236. export class Http2Session extends events.EventEmitter {
  237. protected constructor();
  238. readonly alpnProtocol?: string;
  239. close(callback?: () => void): void;
  240. readonly closed: boolean;
  241. readonly connecting: boolean;
  242. destroy(error?: Error, code?: number): void;
  243. readonly destroyed: boolean;
  244. readonly encrypted?: boolean;
  245. goaway(code?: number, lastStreamID?: number, opaqueData?: Buffer | DataView | NodeJS.TypedArray): void;
  246. readonly localSettings: Settings;
  247. readonly originSet?: string[];
  248. readonly pendingSettingsAck: boolean;
  249. ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;
  250. ping(payload: Buffer | DataView | NodeJS.TypedArray , callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean;
  251. ref(): void;
  252. readonly remoteSettings: Settings;
  253. setTimeout(msecs: number, callback?: () => void): void;
  254. readonly socket: net.Socket | tls.TLSSocket;
  255. readonly state: SessionState;
  256. settings(settings: Settings): void;
  257. readonly type: number;
  258. unref(): void;
  259. addListener(event: "close", listener: () => void): this;
  260. addListener(event: "error", listener: (err: Error) => void): this;
  261. addListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
  262. addListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
  263. addListener(event: "localSettings", listener: (settings: Settings) => void): this;
  264. addListener(event: "ping", listener: () => void): this;
  265. addListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
  266. addListener(event: "timeout", listener: () => void): this;
  267. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  268. emit(event: "close"): boolean;
  269. emit(event: "error", err: Error): boolean;
  270. emit(event: "frameError", frameType: number, errorCode: number, streamID: number): boolean;
  271. emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean;
  272. emit(event: "localSettings", settings: Settings): boolean;
  273. emit(event: "ping"): boolean;
  274. emit(event: "remoteSettings", settings: Settings): boolean;
  275. emit(event: "timeout"): boolean;
  276. emit(event: string | symbol, ...args: any[]): boolean;
  277. on(event: "close", listener: () => void): this;
  278. on(event: "error", listener: (err: Error) => void): this;
  279. on(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
  280. on(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
  281. on(event: "localSettings", listener: (settings: Settings) => void): this;
  282. on(event: "ping", listener: () => void): this;
  283. on(event: "remoteSettings", listener: (settings: Settings) => void): this;
  284. on(event: "timeout", listener: () => void): this;
  285. on(event: string | symbol, listener: (...args: any[]) => void): this;
  286. once(event: "close", listener: () => void): this;
  287. once(event: "error", listener: (err: Error) => void): this;
  288. once(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
  289. once(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
  290. once(event: "localSettings", listener: (settings: Settings) => void): this;
  291. once(event: "ping", listener: () => void): this;
  292. once(event: "remoteSettings", listener: (settings: Settings) => void): this;
  293. once(event: "timeout", listener: () => void): this;
  294. once(event: string | symbol, listener: (...args: any[]) => void): this;
  295. prependListener(event: "close", listener: () => void): this;
  296. prependListener(event: "error", listener: (err: Error) => void): this;
  297. prependListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
  298. prependListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
  299. prependListener(event: "localSettings", listener: (settings: Settings) => void): this;
  300. prependListener(event: "ping", listener: () => void): this;
  301. prependListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
  302. prependListener(event: "timeout", listener: () => void): this;
  303. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  304. prependOnceListener(event: "close", listener: () => void): this;
  305. prependOnceListener(event: "error", listener: (err: Error) => void): this;
  306. prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this;
  307. prependOnceListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this;
  308. prependOnceListener(event: "localSettings", listener: (settings: Settings) => void): this;
  309. prependOnceListener(event: "ping", listener: () => void): this;
  310. prependOnceListener(event: "remoteSettings", listener: (settings: Settings) => void): this;
  311. prependOnceListener(event: "timeout", listener: () => void): this;
  312. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  313. }
  314. export class ClientHttp2Session extends Http2Session {
  315. private constructor();
  316. request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream;
  317. addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
  318. addListener(event: "origin", listener: (origins: string[]) => void): this;
  319. addListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  320. addListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  321. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  322. emit(event: "altsvc", alt: string, origin: string, stream: number): boolean;
  323. emit(event: "origin", origins: string[]): boolean;
  324. emit(event: "connect", session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean;
  325. emit(event: "stream", stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
  326. emit(event: string | symbol, ...args: any[]): boolean;
  327. on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
  328. on(event: "origin", listener: (origins: string[]) => void): this;
  329. on(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  330. on(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  331. on(event: string | symbol, listener: (...args: any[]) => void): this;
  332. once(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
  333. once(event: "origin", listener: (origins: string[]) => void): this;
  334. once(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  335. once(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  336. once(event: string | symbol, listener: (...args: any[]) => void): this;
  337. prependListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
  338. prependListener(event: "origin", listener: (origins: string[]) => void): this;
  339. prependListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  340. prependListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  341. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  342. prependOnceListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
  343. prependOnceListener(event: "origin", listener: (origins: string[]) => void): this;
  344. prependOnceListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  345. prependOnceListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this;
  346. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  347. }
  348. export interface AlternativeServiceOptions {
  349. origin: number | string | url.URL;
  350. }
  351. export class ServerHttp2Session extends Http2Session {
  352. private constructor();
  353. altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void;
  354. origin(...args: Array<string | url.URL | { origin: string }>): void;
  355. readonly server: Http2Server | Http2SecureServer;
  356. addListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  357. addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  358. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  359. emit(event: "connect", session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean;
  360. emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
  361. emit(event: string | symbol, ...args: any[]): boolean;
  362. on(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  363. on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  364. on(event: string | symbol, listener: (...args: any[]) => void): this;
  365. once(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  366. once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  367. once(event: string | symbol, listener: (...args: any[]) => void): this;
  368. prependListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  369. prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  370. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  371. prependOnceListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this;
  372. prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  373. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  374. }
  375. // Http2Server
  376. export interface SessionOptions {
  377. maxDeflateDynamicTableSize?: number;
  378. maxSessionMemory?: number;
  379. maxHeaderListPairs?: number;
  380. maxOutstandingPings?: number;
  381. maxSendHeaderBlockLength?: number;
  382. paddingStrategy?: number;
  383. peerMaxConcurrentStreams?: number;
  384. selectPadding?: (frameLen: number, maxFrameLen: number) => number;
  385. settings?: Settings;
  386. createConnection?: (authority: url.URL, option: SessionOptions) => stream.Duplex;
  387. }
  388. export interface ClientSessionOptions extends SessionOptions {
  389. maxReservedRemoteStreams?: number;
  390. createConnection?: (authority: url.URL, option: SessionOptions) => stream.Duplex;
  391. }
  392. export interface ServerSessionOptions extends SessionOptions {
  393. Http1IncomingMessage?: typeof IncomingMessage;
  394. Http1ServerResponse?: typeof ServerResponse;
  395. Http2ServerRequest?: typeof Http2ServerRequest;
  396. Http2ServerResponse?: typeof Http2ServerResponse;
  397. }
  398. export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions { }
  399. export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions { }
  400. export interface ServerOptions extends ServerSessionOptions { }
  401. export interface SecureServerOptions extends SecureServerSessionOptions {
  402. allowHTTP1?: boolean;
  403. origins?: string[];
  404. }
  405. export class Http2Server extends net.Server {
  406. private constructor();
  407. addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  408. addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  409. addListener(event: "session", listener: (session: ServerHttp2Session) => void): this;
  410. addListener(event: "sessionError", listener: (err: Error) => void): this;
  411. addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  412. addListener(event: "timeout", listener: () => void): this;
  413. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  414. emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
  415. emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
  416. emit(event: "session", session: ServerHttp2Session): boolean;
  417. emit(event: "sessionError", err: Error): boolean;
  418. emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
  419. emit(event: "timeout"): boolean;
  420. emit(event: string | symbol, ...args: any[]): boolean;
  421. on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  422. on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  423. on(event: "session", listener: (session: ServerHttp2Session) => void): this;
  424. on(event: "sessionError", listener: (err: Error) => void): this;
  425. on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  426. on(event: "timeout", listener: () => void): this;
  427. on(event: string | symbol, listener: (...args: any[]) => void): this;
  428. once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  429. once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  430. once(event: "session", listener: (session: ServerHttp2Session) => void): this;
  431. once(event: "sessionError", listener: (err: Error) => void): this;
  432. once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  433. once(event: "timeout", listener: () => void): this;
  434. once(event: string | symbol, listener: (...args: any[]) => void): this;
  435. prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  436. prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  437. prependListener(event: "session", listener: (session: ServerHttp2Session) => void): this;
  438. prependListener(event: "sessionError", listener: (err: Error) => void): this;
  439. prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  440. prependListener(event: "timeout", listener: () => void): this;
  441. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  442. prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  443. prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  444. prependOnceListener(event: "session", listener: (session: ServerHttp2Session) => void): this;
  445. prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
  446. prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  447. prependOnceListener(event: "timeout", listener: () => void): this;
  448. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  449. setTimeout(msec?: number, callback?: () => void): this;
  450. }
  451. export class Http2SecureServer extends tls.Server {
  452. private constructor();
  453. addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  454. addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  455. addListener(event: "session", listener: (session: ServerHttp2Session) => void): this;
  456. addListener(event: "sessionError", listener: (err: Error) => void): this;
  457. addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  458. addListener(event: "timeout", listener: () => void): this;
  459. addListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
  460. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  461. emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
  462. emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean;
  463. emit(event: "session", session: ServerHttp2Session): boolean;
  464. emit(event: "sessionError", err: Error): boolean;
  465. emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
  466. emit(event: "timeout"): boolean;
  467. emit(event: "unknownProtocol", socket: tls.TLSSocket): boolean;
  468. emit(event: string | symbol, ...args: any[]): boolean;
  469. on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  470. on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  471. on(event: "session", listener: (session: ServerHttp2Session) => void): this;
  472. on(event: "sessionError", listener: (err: Error) => void): this;
  473. on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  474. on(event: "timeout", listener: () => void): this;
  475. on(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
  476. on(event: string | symbol, listener: (...args: any[]) => void): this;
  477. once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  478. once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  479. once(event: "session", listener: (session: ServerHttp2Session) => void): this;
  480. once(event: "sessionError", listener: (err: Error) => void): this;
  481. once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  482. once(event: "timeout", listener: () => void): this;
  483. once(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
  484. once(event: string | symbol, listener: (...args: any[]) => void): this;
  485. prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  486. prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  487. prependListener(event: "session", listener: (session: ServerHttp2Session) => void): this;
  488. prependListener(event: "sessionError", listener: (err: Error) => void): this;
  489. prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  490. prependListener(event: "timeout", listener: () => void): this;
  491. prependListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
  492. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  493. prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  494. prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this;
  495. prependOnceListener(event: "session", listener: (session: ServerHttp2Session) => void): this;
  496. prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
  497. prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this;
  498. prependOnceListener(event: "timeout", listener: () => void): this;
  499. prependOnceListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this;
  500. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  501. setTimeout(msec?: number, callback?: () => void): this;
  502. }
  503. export class Http2ServerRequest extends stream.Readable {
  504. private constructor();
  505. readonly aborted: boolean;
  506. readonly authority: string;
  507. readonly headers: IncomingHttpHeaders;
  508. readonly httpVersion: string;
  509. readonly method: string;
  510. readonly rawHeaders: string[];
  511. readonly rawTrailers: string[];
  512. readonly scheme: string;
  513. setTimeout(msecs: number, callback?: () => void): void;
  514. readonly socket: net.Socket | tls.TLSSocket;
  515. readonly stream: ServerHttp2Stream;
  516. readonly trailers: IncomingHttpHeaders;
  517. readonly url: string;
  518. read(size?: number): Buffer | string | null;
  519. addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
  520. addListener(event: "close", listener: () => void): this;
  521. addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
  522. addListener(event: "end", listener: () => void): this;
  523. addListener(event: "readable", listener: () => void): this;
  524. addListener(event: "error", listener: (err: Error) => void): this;
  525. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  526. emit(event: "aborted", hadError: boolean, code: number): boolean;
  527. emit(event: "close"): boolean;
  528. emit(event: "data", chunk: Buffer | string): boolean;
  529. emit(event: "end"): boolean;
  530. emit(event: "readable"): boolean;
  531. emit(event: "error", err: Error): boolean;
  532. emit(event: string | symbol, ...args: any[]): boolean;
  533. on(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
  534. on(event: "close", listener: () => void): this;
  535. on(event: "data", listener: (chunk: Buffer | string) => void): this;
  536. on(event: "end", listener: () => void): this;
  537. on(event: "readable", listener: () => void): this;
  538. on(event: "error", listener: (err: Error) => void): this;
  539. on(event: string | symbol, listener: (...args: any[]) => void): this;
  540. once(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
  541. once(event: "close", listener: () => void): this;
  542. once(event: "data", listener: (chunk: Buffer | string) => void): this;
  543. once(event: "end", listener: () => void): this;
  544. once(event: "readable", listener: () => void): this;
  545. once(event: "error", listener: (err: Error) => void): this;
  546. once(event: string | symbol, listener: (...args: any[]) => void): this;
  547. prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
  548. prependListener(event: "close", listener: () => void): this;
  549. prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
  550. prependListener(event: "end", listener: () => void): this;
  551. prependListener(event: "readable", listener: () => void): this;
  552. prependListener(event: "error", listener: (err: Error) => void): this;
  553. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  554. prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this;
  555. prependOnceListener(event: "close", listener: () => void): this;
  556. prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
  557. prependOnceListener(event: "end", listener: () => void): this;
  558. prependOnceListener(event: "readable", listener: () => void): this;
  559. prependOnceListener(event: "error", listener: (err: Error) => void): this;
  560. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  561. }
  562. export class Http2ServerResponse extends stream.Stream {
  563. private constructor();
  564. addTrailers(trailers: OutgoingHttpHeaders): void;
  565. readonly connection: net.Socket | tls.TLSSocket;
  566. end(callback?: () => void): void;
  567. end(data: string | Buffer | Uint8Array, callback?: () => void): void;
  568. end(data: string | Buffer | Uint8Array, encoding: string, callback?: () => void): void;
  569. readonly finished: boolean;
  570. getHeader(name: string): string;
  571. getHeaderNames(): string[];
  572. getHeaders(): OutgoingHttpHeaders;
  573. hasHeader(name: string): boolean;
  574. readonly headersSent: boolean;
  575. removeHeader(name: string): void;
  576. sendDate: boolean;
  577. setHeader(name: string, value: number | string | string[]): void;
  578. setTimeout(msecs: number, callback?: () => void): void;
  579. readonly socket: net.Socket | tls.TLSSocket;
  580. statusCode: number;
  581. statusMessage: '';
  582. readonly stream: ServerHttp2Stream;
  583. write(chunk: string | Buffer | Uint8Array, callback?: (err: Error) => void): boolean;
  584. write(chunk: string | Buffer | Uint8Array, encoding: string, callback?: (err: Error) => void): boolean;
  585. writeContinue(): void;
  586. writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this;
  587. writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this;
  588. createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void;
  589. addListener(event: "close", listener: () => void): this;
  590. addListener(event: "drain", listener: () => void): this;
  591. addListener(event: "error", listener: (error: Error) => void): this;
  592. addListener(event: "finish", listener: () => void): this;
  593. addListener(event: "pipe", listener: (src: stream.Readable) => void): this;
  594. addListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
  595. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  596. emit(event: "close"): boolean;
  597. emit(event: "drain"): boolean;
  598. emit(event: "error", error: Error): boolean;
  599. emit(event: "finish"): boolean;
  600. emit(event: "pipe", src: stream.Readable): boolean;
  601. emit(event: "unpipe", src: stream.Readable): boolean;
  602. emit(event: string | symbol, ...args: any[]): boolean;
  603. on(event: "close", listener: () => void): this;
  604. on(event: "drain", listener: () => void): this;
  605. on(event: "error", listener: (error: Error) => void): this;
  606. on(event: "finish", listener: () => void): this;
  607. on(event: "pipe", listener: (src: stream.Readable) => void): this;
  608. on(event: "unpipe", listener: (src: stream.Readable) => void): this;
  609. on(event: string | symbol, listener: (...args: any[]) => void): this;
  610. once(event: "close", listener: () => void): this;
  611. once(event: "drain", listener: () => void): this;
  612. once(event: "error", listener: (error: Error) => void): this;
  613. once(event: "finish", listener: () => void): this;
  614. once(event: "pipe", listener: (src: stream.Readable) => void): this;
  615. once(event: "unpipe", listener: (src: stream.Readable) => void): this;
  616. once(event: string | symbol, listener: (...args: any[]) => void): this;
  617. prependListener(event: "close", listener: () => void): this;
  618. prependListener(event: "drain", listener: () => void): this;
  619. prependListener(event: "error", listener: (error: Error) => void): this;
  620. prependListener(event: "finish", listener: () => void): this;
  621. prependListener(event: "pipe", listener: (src: stream.Readable) => void): this;
  622. prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
  623. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  624. prependOnceListener(event: "close", listener: () => void): this;
  625. prependOnceListener(event: "drain", listener: () => void): this;
  626. prependOnceListener(event: "error", listener: (error: Error) => void): this;
  627. prependOnceListener(event: "finish", listener: () => void): this;
  628. prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this;
  629. prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
  630. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  631. }
  632. // Public API
  633. export namespace constants {
  634. const NGHTTP2_SESSION_SERVER: number;
  635. const NGHTTP2_SESSION_CLIENT: number;
  636. const NGHTTP2_STREAM_STATE_IDLE: number;
  637. const NGHTTP2_STREAM_STATE_OPEN: number;
  638. const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number;
  639. const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number;
  640. const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number;
  641. const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number;
  642. const NGHTTP2_STREAM_STATE_CLOSED: number;
  643. const NGHTTP2_NO_ERROR: number;
  644. const NGHTTP2_PROTOCOL_ERROR: number;
  645. const NGHTTP2_INTERNAL_ERROR: number;
  646. const NGHTTP2_FLOW_CONTROL_ERROR: number;
  647. const NGHTTP2_SETTINGS_TIMEOUT: number;
  648. const NGHTTP2_STREAM_CLOSED: number;
  649. const NGHTTP2_FRAME_SIZE_ERROR: number;
  650. const NGHTTP2_REFUSED_STREAM: number;
  651. const NGHTTP2_CANCEL: number;
  652. const NGHTTP2_COMPRESSION_ERROR: number;
  653. const NGHTTP2_CONNECT_ERROR: number;
  654. const NGHTTP2_ENHANCE_YOUR_CALM: number;
  655. const NGHTTP2_INADEQUATE_SECURITY: number;
  656. const NGHTTP2_HTTP_1_1_REQUIRED: number;
  657. const NGHTTP2_ERR_FRAME_SIZE_ERROR: number;
  658. const NGHTTP2_FLAG_NONE: number;
  659. const NGHTTP2_FLAG_END_STREAM: number;
  660. const NGHTTP2_FLAG_END_HEADERS: number;
  661. const NGHTTP2_FLAG_ACK: number;
  662. const NGHTTP2_FLAG_PADDED: number;
  663. const NGHTTP2_FLAG_PRIORITY: number;
  664. const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number;
  665. const DEFAULT_SETTINGS_ENABLE_PUSH: number;
  666. const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number;
  667. const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number;
  668. const MAX_MAX_FRAME_SIZE: number;
  669. const MIN_MAX_FRAME_SIZE: number;
  670. const MAX_INITIAL_WINDOW_SIZE: number;
  671. const NGHTTP2_DEFAULT_WEIGHT: number;
  672. const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number;
  673. const NGHTTP2_SETTINGS_ENABLE_PUSH: number;
  674. const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number;
  675. const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number;
  676. const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number;
  677. const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number;
  678. const PADDING_STRATEGY_NONE: number;
  679. const PADDING_STRATEGY_MAX: number;
  680. const PADDING_STRATEGY_CALLBACK: number;
  681. const HTTP2_HEADER_STATUS: string;
  682. const HTTP2_HEADER_METHOD: string;
  683. const HTTP2_HEADER_AUTHORITY: string;
  684. const HTTP2_HEADER_SCHEME: string;
  685. const HTTP2_HEADER_PATH: string;
  686. const HTTP2_HEADER_ACCEPT_CHARSET: string;
  687. const HTTP2_HEADER_ACCEPT_ENCODING: string;
  688. const HTTP2_HEADER_ACCEPT_LANGUAGE: string;
  689. const HTTP2_HEADER_ACCEPT_RANGES: string;
  690. const HTTP2_HEADER_ACCEPT: string;
  691. const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string;
  692. const HTTP2_HEADER_AGE: string;
  693. const HTTP2_HEADER_ALLOW: string;
  694. const HTTP2_HEADER_AUTHORIZATION: string;
  695. const HTTP2_HEADER_CACHE_CONTROL: string;
  696. const HTTP2_HEADER_CONNECTION: string;
  697. const HTTP2_HEADER_CONTENT_DISPOSITION: string;
  698. const HTTP2_HEADER_CONTENT_ENCODING: string;
  699. const HTTP2_HEADER_CONTENT_LANGUAGE: string;
  700. const HTTP2_HEADER_CONTENT_LENGTH: string;
  701. const HTTP2_HEADER_CONTENT_LOCATION: string;
  702. const HTTP2_HEADER_CONTENT_MD5: string;
  703. const HTTP2_HEADER_CONTENT_RANGE: string;
  704. const HTTP2_HEADER_CONTENT_TYPE: string;
  705. const HTTP2_HEADER_COOKIE: string;
  706. const HTTP2_HEADER_DATE: string;
  707. const HTTP2_HEADER_ETAG: string;
  708. const HTTP2_HEADER_EXPECT: string;
  709. const HTTP2_HEADER_EXPIRES: string;
  710. const HTTP2_HEADER_FROM: string;
  711. const HTTP2_HEADER_HOST: string;
  712. const HTTP2_HEADER_IF_MATCH: string;
  713. const HTTP2_HEADER_IF_MODIFIED_SINCE: string;
  714. const HTTP2_HEADER_IF_NONE_MATCH: string;
  715. const HTTP2_HEADER_IF_RANGE: string;
  716. const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string;
  717. const HTTP2_HEADER_LAST_MODIFIED: string;
  718. const HTTP2_HEADER_LINK: string;
  719. const HTTP2_HEADER_LOCATION: string;
  720. const HTTP2_HEADER_MAX_FORWARDS: string;
  721. const HTTP2_HEADER_PREFER: string;
  722. const HTTP2_HEADER_PROXY_AUTHENTICATE: string;
  723. const HTTP2_HEADER_PROXY_AUTHORIZATION: string;
  724. const HTTP2_HEADER_RANGE: string;
  725. const HTTP2_HEADER_REFERER: string;
  726. const HTTP2_HEADER_REFRESH: string;
  727. const HTTP2_HEADER_RETRY_AFTER: string;
  728. const HTTP2_HEADER_SERVER: string;
  729. const HTTP2_HEADER_SET_COOKIE: string;
  730. const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string;
  731. const HTTP2_HEADER_TRANSFER_ENCODING: string;
  732. const HTTP2_HEADER_TE: string;
  733. const HTTP2_HEADER_UPGRADE: string;
  734. const HTTP2_HEADER_USER_AGENT: string;
  735. const HTTP2_HEADER_VARY: string;
  736. const HTTP2_HEADER_VIA: string;
  737. const HTTP2_HEADER_WWW_AUTHENTICATE: string;
  738. const HTTP2_HEADER_HTTP2_SETTINGS: string;
  739. const HTTP2_HEADER_KEEP_ALIVE: string;
  740. const HTTP2_HEADER_PROXY_CONNECTION: string;
  741. const HTTP2_METHOD_ACL: string;
  742. const HTTP2_METHOD_BASELINE_CONTROL: string;
  743. const HTTP2_METHOD_BIND: string;
  744. const HTTP2_METHOD_CHECKIN: string;
  745. const HTTP2_METHOD_CHECKOUT: string;
  746. const HTTP2_METHOD_CONNECT: string;
  747. const HTTP2_METHOD_COPY: string;
  748. const HTTP2_METHOD_DELETE: string;
  749. const HTTP2_METHOD_GET: string;
  750. const HTTP2_METHOD_HEAD: string;
  751. const HTTP2_METHOD_LABEL: string;
  752. const HTTP2_METHOD_LINK: string;
  753. const HTTP2_METHOD_LOCK: string;
  754. const HTTP2_METHOD_MERGE: string;
  755. const HTTP2_METHOD_MKACTIVITY: string;
  756. const HTTP2_METHOD_MKCALENDAR: string;
  757. const HTTP2_METHOD_MKCOL: string;
  758. const HTTP2_METHOD_MKREDIRECTREF: string;
  759. const HTTP2_METHOD_MKWORKSPACE: string;
  760. const HTTP2_METHOD_MOVE: string;
  761. const HTTP2_METHOD_OPTIONS: string;
  762. const HTTP2_METHOD_ORDERPATCH: string;
  763. const HTTP2_METHOD_PATCH: string;
  764. const HTTP2_METHOD_POST: string;
  765. const HTTP2_METHOD_PRI: string;
  766. const HTTP2_METHOD_PROPFIND: string;
  767. const HTTP2_METHOD_PROPPATCH: string;
  768. const HTTP2_METHOD_PUT: string;
  769. const HTTP2_METHOD_REBIND: string;
  770. const HTTP2_METHOD_REPORT: string;
  771. const HTTP2_METHOD_SEARCH: string;
  772. const HTTP2_METHOD_TRACE: string;
  773. const HTTP2_METHOD_UNBIND: string;
  774. const HTTP2_METHOD_UNCHECKOUT: string;
  775. const HTTP2_METHOD_UNLINK: string;
  776. const HTTP2_METHOD_UNLOCK: string;
  777. const HTTP2_METHOD_UPDATE: string;
  778. const HTTP2_METHOD_UPDATEREDIRECTREF: string;
  779. const HTTP2_METHOD_VERSION_CONTROL: string;
  780. const HTTP_STATUS_CONTINUE: number;
  781. const HTTP_STATUS_SWITCHING_PROTOCOLS: number;
  782. const HTTP_STATUS_PROCESSING: number;
  783. const HTTP_STATUS_OK: number;
  784. const HTTP_STATUS_CREATED: number;
  785. const HTTP_STATUS_ACCEPTED: number;
  786. const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number;
  787. const HTTP_STATUS_NO_CONTENT: number;
  788. const HTTP_STATUS_RESET_CONTENT: number;
  789. const HTTP_STATUS_PARTIAL_CONTENT: number;
  790. const HTTP_STATUS_MULTI_STATUS: number;
  791. const HTTP_STATUS_ALREADY_REPORTED: number;
  792. const HTTP_STATUS_IM_USED: number;
  793. const HTTP_STATUS_MULTIPLE_CHOICES: number;
  794. const HTTP_STATUS_MOVED_PERMANENTLY: number;
  795. const HTTP_STATUS_FOUND: number;
  796. const HTTP_STATUS_SEE_OTHER: number;
  797. const HTTP_STATUS_NOT_MODIFIED: number;
  798. const HTTP_STATUS_USE_PROXY: number;
  799. const HTTP_STATUS_TEMPORARY_REDIRECT: number;
  800. const HTTP_STATUS_PERMANENT_REDIRECT: number;
  801. const HTTP_STATUS_BAD_REQUEST: number;
  802. const HTTP_STATUS_UNAUTHORIZED: number;
  803. const HTTP_STATUS_PAYMENT_REQUIRED: number;
  804. const HTTP_STATUS_FORBIDDEN: number;
  805. const HTTP_STATUS_NOT_FOUND: number;
  806. const HTTP_STATUS_METHOD_NOT_ALLOWED: number;
  807. const HTTP_STATUS_NOT_ACCEPTABLE: number;
  808. const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number;
  809. const HTTP_STATUS_REQUEST_TIMEOUT: number;
  810. const HTTP_STATUS_CONFLICT: number;
  811. const HTTP_STATUS_GONE: number;
  812. const HTTP_STATUS_LENGTH_REQUIRED: number;
  813. const HTTP_STATUS_PRECONDITION_FAILED: number;
  814. const HTTP_STATUS_PAYLOAD_TOO_LARGE: number;
  815. const HTTP_STATUS_URI_TOO_LONG: number;
  816. const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number;
  817. const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number;
  818. const HTTP_STATUS_EXPECTATION_FAILED: number;
  819. const HTTP_STATUS_TEAPOT: number;
  820. const HTTP_STATUS_MISDIRECTED_REQUEST: number;
  821. const HTTP_STATUS_UNPROCESSABLE_ENTITY: number;
  822. const HTTP_STATUS_LOCKED: number;
  823. const HTTP_STATUS_FAILED_DEPENDENCY: number;
  824. const HTTP_STATUS_UNORDERED_COLLECTION: number;
  825. const HTTP_STATUS_UPGRADE_REQUIRED: number;
  826. const HTTP_STATUS_PRECONDITION_REQUIRED: number;
  827. const HTTP_STATUS_TOO_MANY_REQUESTS: number;
  828. const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number;
  829. const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number;
  830. const HTTP_STATUS_INTERNAL_SERVER_ERROR: number;
  831. const HTTP_STATUS_NOT_IMPLEMENTED: number;
  832. const HTTP_STATUS_BAD_GATEWAY: number;
  833. const HTTP_STATUS_SERVICE_UNAVAILABLE: number;
  834. const HTTP_STATUS_GATEWAY_TIMEOUT: number;
  835. const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number;
  836. const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number;
  837. const HTTP_STATUS_INSUFFICIENT_STORAGE: number;
  838. const HTTP_STATUS_LOOP_DETECTED: number;
  839. const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number;
  840. const HTTP_STATUS_NOT_EXTENDED: number;
  841. const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number;
  842. }
  843. export function getDefaultSettings(): Settings;
  844. export function getPackedSettings(settings: Settings): Buffer;
  845. export function getUnpackedSettings(buf: Buffer | Uint8Array): Settings;
  846. export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server;
  847. export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server;
  848. export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer;
  849. export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer;
  850. export function connect(authority: string | url.URL, listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session;
  851. export function connect(
  852. authority: string | url.URL,
  853. options?: ClientSessionOptions | SecureClientSessionOptions,
  854. listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void,
  855. ): ClientHttp2Session;
  856. }