summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Casonato <lucacasonato@yahoo.com>2020-09-25 16:21:34 +0200
committerGitHub <noreply@github.com>2020-09-25 16:21:34 +0200
commit3204092732f38483f8a45fd500a6531511c602f7 (patch)
tree453f9730e812ae2778cc30ebc26dd48a8a3886c0
parent826e899bbcdcadfd549fb5ed776100f4f4d400d2 (diff)
refactor: class instead of var+interface in d.ts (#7514)
-rw-r--r--.dprintrc.json7
-rw-r--r--cli/dts/lib.deno.shared_globals.d.ts358
-rw-r--r--op_crates/fetch/lib.deno_fetch.d.ts189
3 files changed, 293 insertions, 261 deletions
diff --git a/.dprintrc.json b/.dprintrc.json
index 204bbd1f6..4cdfdc6fa 100644
--- a/.dprintrc.json
+++ b/.dprintrc.json
@@ -13,7 +13,12 @@
"includes": ["**/*.{ts,tsx,js,jsx,json,md}"],
"excludes": [
".cargo_home",
- "cli/dts",
+ "cli/dts/lib.d.ts",
+ "cli/dts/lib.dom*",
+ "cli/dts/lib.es*",
+ "cli/dts/lib.scripthost.d.ts",
+ "cli/dts/lib.webworker*.d.ts",
+ "cli/dts/typescript.d.ts",
"cli/tests/encoding",
"cli/tsc/*typescript.js",
"gh-pages",
diff --git a/cli/dts/lib.deno.shared_globals.d.ts b/cli/dts/lib.deno.shared_globals.d.ts
index 0d55b84a2..9f40e2521 100644
--- a/cli/dts/lib.deno.shared_globals.d.ts
+++ b/cli/dts/lib.deno.shared_globals.d.ts
@@ -8,128 +8,111 @@
/// <reference lib="deno.fetch" />
declare namespace WebAssembly {
- interface CompileError {
- }
-
- var CompileError: {
- prototype: CompileError;
- new(): CompileError;
- };
-
- interface Global {
- value: any;
- valueOf(): any;
- }
-
- var Global: {
- prototype: Global;
- new(descriptor: GlobalDescriptor, v?: any): Global;
- };
-
- interface Instance {
- readonly exports: Exports;
- }
-
- var Instance: {
- prototype: Instance;
- new(module: Module, importObject?: Imports): Instance;
- };
-
- interface LinkError {
- }
-
- var LinkError: {
- prototype: LinkError;
- new(): LinkError;
- };
-
- interface Memory {
- readonly buffer: ArrayBuffer;
- grow(delta: number): number;
- }
-
- var Memory: {
- prototype: Memory;
- new(descriptor: MemoryDescriptor): Memory;
- };
-
- interface Module {
- }
-
- var Module: {
- prototype: Module;
- new(bytes: BufferSource): Module;
- customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];
- exports(moduleObject: Module): ModuleExportDescriptor[];
- imports(moduleObject: Module): ModuleImportDescriptor[];
- };
-
- interface RuntimeError {
- }
-
- var RuntimeError: {
- prototype: RuntimeError;
- new(): RuntimeError;
- };
-
- interface Table {
- readonly length: number;
- get(index: number): Function | null;
- grow(delta: number): number;
- set(index: number, value: Function | null): void;
- }
-
- var Table: {
- prototype: Table;
- new(descriptor: TableDescriptor): Table;
- };
-
- interface GlobalDescriptor {
- mutable?: boolean;
- value: ValueType;
- }
-
- interface MemoryDescriptor {
- initial: number;
- maximum?: number;
- }
-
- interface ModuleExportDescriptor {
- kind: ImportExportKind;
- name: string;
- }
-
- interface ModuleImportDescriptor {
- kind: ImportExportKind;
- module: string;
- name: string;
- }
-
- interface TableDescriptor {
- element: TableKind;
- initial: number;
- maximum?: number;
- }
-
- interface WebAssemblyInstantiatedSource {
- instance: Instance;
- module: Module;
- }
-
- type ImportExportKind = "function" | "global" | "memory" | "table";
- type TableKind = "anyfunc";
- type ValueType = "f32" | "f64" | "i32" | "i64";
- type ExportValue = Function | Global | Memory | Table;
- type Exports = Record<string, ExportValue>;
- type ImportValue = ExportValue | number;
- type ModuleImports = Record<string, ImportValue>;
- type Imports = Record<string, ModuleImports>;
- function compile(bytes: BufferSource): Promise<Module>;
- function compileStreaming(source: Response | Promise<Response>): Promise<Module>;
- function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
- function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;
- function instantiateStreaming(response: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
- function validate(bytes: BufferSource): boolean;
+ export class CompileError {
+ constructor();
+ }
+
+ export class Global {
+ constructor(descriptor: GlobalDescriptor, v?: any);
+
+ value: any;
+ valueOf(): any;
+ }
+
+ export class Instance {
+ constructor(module: Module, importObject?: Imports);
+ readonly exports: Exports;
+ }
+
+ export class LinkError {
+ constructor();
+ }
+
+ export class Memory {
+ constructor(descriptor: MemoryDescriptor);
+ readonly buffer: ArrayBuffer;
+ grow(delta: number): number;
+ }
+
+ export class Module {
+ constructor(bytes: BufferSource);
+ static customSections(
+ moduleObject: Module,
+ sectionName: string,
+ ): ArrayBuffer[];
+ static exports(moduleObject: Module): ModuleExportDescriptor[];
+ static imports(moduleObject: Module): ModuleImportDescriptor[];
+ }
+
+ export class RuntimeError {
+ constructor();
+ }
+
+ export class Table {
+ constructor(descriptor: TableDescriptor);
+ readonly length: number;
+ get(index: number): Function | null;
+ grow(delta: number): number;
+ set(index: number, value: Function | null): void;
+ }
+
+ export interface GlobalDescriptor {
+ mutable?: boolean;
+ value: ValueType;
+ }
+
+ export interface MemoryDescriptor {
+ initial: number;
+ maximum?: number;
+ }
+
+ export interface ModuleExportDescriptor {
+ kind: ImportExportKind;
+ name: string;
+ }
+
+ export interface ModuleImportDescriptor {
+ kind: ImportExportKind;
+ module: string;
+ name: string;
+ }
+
+ export interface TableDescriptor {
+ element: TableKind;
+ initial: number;
+ maximum?: number;
+ }
+
+ export interface WebAssemblyInstantiatedSource {
+ instance: Instance;
+ module: Module;
+ }
+
+ export type ImportExportKind = "function" | "global" | "memory" | "table";
+ export type TableKind = "anyfunc";
+ export type ValueType = "f32" | "f64" | "i32" | "i64";
+ export type ExportValue = Function | Global | Memory | Table;
+ export type Exports = Record<string, ExportValue>;
+ export type ImportValue = ExportValue | number;
+ export type ModuleImports = Record<string, ImportValue>;
+ export type Imports = Record<string, ModuleImports>;
+ export function compile(bytes: BufferSource): Promise<Module>;
+ export function compileStreaming(
+ source: Response | Promise<Response>,
+ ): Promise<Module>;
+ export function instantiate(
+ bytes: BufferSource,
+ importObject?: Imports,
+ ): Promise<WebAssemblyInstantiatedSource>;
+ export function instantiate(
+ moduleObject: Module,
+ importObject?: Imports,
+ ): Promise<Instance>;
+ export function instantiateStreaming(
+ response: Response | PromiseLike<Response>,
+ importObject?: Imports,
+ ): Promise<WebAssemblyInstantiatedSource>;
+ export function validate(bytes: BufferSource): boolean;
}
/** Sets a timer which executes a function once after the timer expires. Returns
@@ -286,35 +269,12 @@ declare interface Crypto {
): T;
}
+declare class URLSearchParams {
+ constructor(
+ init?: string[][] | Record<string, string> | string | URLSearchParams,
+ );
+ static toString(): string;
-interface ResponseInit {
- headers?: HeadersInit;
- status?: number;
- statusText?: string;
-}
-
-type ResponseType =
- | "basic"
- | "cors"
- | "default"
- | "error"
- | "opaque"
- | "opaqueredirect";
-
-/** This Fetch API interface represents the response to a request. */
-interface Response extends Body {
- readonly headers: Headers;
- readonly ok: boolean;
- readonly redirected: boolean;
- readonly status: number;
- readonly statusText: string;
- readonly trailer: Promise<Headers>;
- readonly type: ResponseType;
- readonly url: string;
- clone(): Response;
-}
-
-interface URLSearchParams {
/** Appends a specified key/value pair as a new search parameter.
*
* ```ts
@@ -456,16 +416,12 @@ interface URLSearchParams {
toString(): string;
}
-declare const URLSearchParams: {
- prototype: URLSearchParams;
- new (
- init?: string[][] | Record<string, string> | string | URLSearchParams,
- ): URLSearchParams;
- toString(): string;
-};
-
/** The URL interface represents an object providing static methods used for creating object URLs. */
-interface URL {
+declare class URL {
+ constructor(url: string, base?: string | URL);
+ createObjectURL(object: any): string;
+ revokeObjectURL(url: string): void;
+
hash: string;
host: string;
hostname: string;
@@ -482,13 +438,6 @@ interface URL {
toJSON(): string;
}
-declare const URL: {
- prototype: URL;
- new (url: string, base?: string | URL): URL;
- createObjectURL(object: any): string;
- revokeObjectURL(url: string): void;
-};
-
interface MessageEventInit extends EventInit {
data?: any;
origin?: string;
@@ -593,7 +542,9 @@ declare class Worker extends EventTarget {
declare type PerformanceEntryList = PerformanceEntry[];
-declare interface Performance {
+declare class Performance {
+ constructor();
+
/** Removes the stored timestamp with the associated name. */
clearMarks(markName?: string): void;
@@ -633,11 +584,6 @@ declare interface Performance {
now(): number;
}
-declare const Performance: {
- prototype: Performance;
- new (): Performance;
-};
-
declare const performance: Performance;
declare interface PerformanceMarkOptions {
@@ -697,19 +643,15 @@ declare class PerformanceMeasure extends PerformanceEntry {
/** Events measuring progress of an underlying process, like an HTTP request
* (for an XMLHttpRequest, or the loading of the underlying resource of an
* <img>, <audio>, <video>, <style> or <link>). */
-interface ProgressEvent<T extends EventTarget = EventTarget> extends Event {
+declare class ProgressEvent<T extends EventTarget = EventTarget> extends Event {
+ constructor(type: string, eventInitDict?: ProgressEventInit);
readonly lengthComputable: boolean;
readonly loaded: number;
readonly target: T | null;
readonly total: number;
}
-declare var ProgressEvent: {
- prototype: ProgressEvent;
- new(type:string, eventInitDict?: ProgressEventInit): ProgressEvent;
-};
-
-interface CustomEventInit<T = any> extends EventInit {
+declare interface CustomEventInit<T = any> extends EventInit {
detail?: T;
}
@@ -734,7 +676,8 @@ interface CloseEventInit extends EventInit {
wasClean?: boolean;
}
-interface CloseEvent extends Event {
+declare class CloseEvent extends Event {
+ constructor(type: string, eventInitDict?: CloseEventInit);
/**
* Returns the WebSocket connection close code provided by the server.
*/
@@ -749,20 +692,22 @@ interface CloseEvent extends Event {
readonly wasClean: boolean;
}
-declare var CloseEvent: {
- prototype: CloseEvent;
- new(type: string, eventInitDict?: CloseEventInit): CloseEvent;
-};
-
interface WebSocketEventMap {
- "close": CloseEvent;
- "error": Event;
- "message": MessageEvent;
- "open": Event;
+ close: CloseEvent;
+ error: Event;
+ message: MessageEvent;
+ open: Event;
}
/** Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. */
-interface WebSocket extends EventTarget {
+declare class WebSocket extends EventTarget {
+ constructor(url: string, protocols?: string | string[]);
+
+ static readonly CLOSED: number;
+ static readonly CLOSING: number;
+ static readonly CONNECTING: number;
+ static readonly OPEN: number;
+
/**
* Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:
*
@@ -807,19 +752,26 @@ interface WebSocket extends EventTarget {
readonly CLOSING: number;
readonly CONNECTING: number;
readonly OPEN: number;
- addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
- removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ addEventListener<K extends keyof WebSocketEventMap>(
+ type: K,
+ listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
+ options?: boolean | AddEventListenerOptions,
+ ): void;
+ addEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | AddEventListenerOptions,
+ ): void;
+ removeEventListener<K extends keyof WebSocketEventMap>(
+ type: K,
+ listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
+ options?: boolean | EventListenerOptions,
+ ): void;
+ removeEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | EventListenerOptions,
+ ): void;
}
-declare var WebSocket: {
- prototype: WebSocket;
- new(url: string, protocols?: string | string[]): WebSocket;
- readonly CLOSED: number;
- readonly CLOSING: number;
- readonly CONNECTING: number;
- readonly OPEN: number;
-};
-
type BinaryType = "arraybuffer" | "blob";
diff --git a/op_crates/fetch/lib.deno_fetch.d.ts b/op_crates/fetch/lib.deno_fetch.d.ts
index fcc2fc919..6e7edad3f 100644
--- a/op_crates/fetch/lib.deno_fetch.d.ts
+++ b/op_crates/fetch/lib.deno_fetch.d.ts
@@ -102,7 +102,7 @@ interface QueuingStrategy<T = any> {
}
/** This Streams API interface provides a built-in byte length queuing strategy
- * that can be used when constructing streams. */
+ * that can be used when constructing streams. */
declare class CountQueuingStrategy implements QueuingStrategy {
constructor(options: { highWaterMark: number });
highWaterMark: number;
@@ -117,8 +117,8 @@ declare class ByteLengthQueuingStrategy
}
/** This Streams API interface represents a readable stream of byte data. The
- * Fetch API offers a concrete instance of a ReadableStream through the body
- * property of a Response object. */
+ * Fetch API offers a concrete instance of a ReadableStream through the body
+ * property of a Response object. */
interface ReadableStream<R = any> {
readonly locked: boolean;
cancel(reason?: any): Promise<void>;
@@ -142,7 +142,7 @@ interface ReadableStream<R = any> {
}): AsyncIterableIterator<R>;
}
-declare var ReadableStream: {
+declare const ReadableStream: {
prototype: ReadableStream;
new (
underlyingSource: UnderlyingByteSource,
@@ -183,8 +183,8 @@ interface UnderlyingSink<W = any> {
}
/** This Streams API interface provides a standard abstraction for writing
- * streaming data to a destination, known as a sink. This object comes with
- * built-in backpressure and queuing. */
+ * streaming data to a destination, known as a sink. This object comes with
+ * built-in backpressure and queuing. */
declare class WritableStream<W = any> {
constructor(
underlyingSink?: UnderlyingSink<W>,
@@ -197,17 +197,17 @@ declare class WritableStream<W = any> {
}
/** This Streams API interface represents a controller allowing control of a
- * WritableStream's state. When constructing a WritableStream, the underlying
- * sink is given a corresponding WritableStreamDefaultController instance to
- * manipulate. */
+ * WritableStream's state. When constructing a WritableStream, the underlying
+ * sink is given a corresponding WritableStreamDefaultController instance to
+ * manipulate. */
interface WritableStreamDefaultController {
error(error?: any): void;
}
/** This Streams API interface is the object returned by
- * WritableStream.getWriter() and once created locks the < writer to the
- * WritableStream ensuring that no other streams can write to the underlying
- * sink. */
+ * WritableStream.getWriter() and once created locks the < writer to the
+ * WritableStream ensuring that no other streams can write to the underlying
+ * sink. */
interface WritableStreamDefaultWriter<W = any> {
readonly closed: Promise<void>;
readonly desiredSize: number | null;
@@ -262,7 +262,9 @@ interface BlobPropertyBag {
}
/** A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system. */
-interface Blob {
+declare class Blob {
+ constructor(blobParts?: BlobPart[], options?: BlobPropertyBag);
+
readonly size: number;
readonly type: string;
arrayBuffer(): Promise<ArrayBuffer>;
@@ -271,49 +273,50 @@ interface Blob {
text(): Promise<string>;
}
-declare const Blob: {
- prototype: Blob;
- new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
-};
-
interface FilePropertyBag extends BlobPropertyBag {
lastModified?: number;
}
/** Provides information about files and allows JavaScript in a web page to
- * access their content. */
-interface File extends Blob {
+ * access their content. */
+declare class File extends Blob {
+ constructor(
+ fileBits: BlobPart[],
+ fileName: string,
+ options?: FilePropertyBag,
+ );
+
readonly lastModified: number;
readonly name: string;
}
-declare const File: {
- prototype: File;
- new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
-};
-
type FormDataEntryValue = File | string;
/** Provides a way to easily construct a set of key/value pairs representing
* form fields and their values, which can then be easily sent using the
* XMLHttpRequest.send() method. It uses the same format a form would use if the
* encoding type were set to "multipart/form-data". */
-interface FormData extends DomIterable<string, FormDataEntryValue> {
+declare class FormData implements DomIterable<string, FormDataEntryValue> {
+ // TODO(ry) FormData constructor is non-standard.
+ // new(form?: HTMLFormElement): FormData;
+ constructor();
+
append(name: string, value: string | Blob, fileName?: string): void;
delete(name: string): void;
get(name: string): FormDataEntryValue | null;
getAll(name: string): FormDataEntryValue[];
has(name: string): boolean;
set(name: string, value: string | Blob, fileName?: string): void;
+ keys(): IterableIterator<string>;
+ values(): IterableIterator<string>;
+ entries(): IterableIterator<[string, FormDataEntryValue]>;
+ [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;
+ forEach(
+ callback: (value: FormDataEntryValue, key: string, parent: this) => void,
+ thisArg?: any,
+ ): void;
}
-declare const FormData: {
- prototype: FormData;
- // TODO(ry) FormData constructor is non-standard.
- // new(form?: HTMLFormElement): FormData;
- new (): FormData;
-};
-
interface Body {
/** A simple getter used to expose a `ReadableStream` of the body contents. */
readonly body: ReadableStream<Uint8Array> | null;
@@ -364,7 +367,9 @@ interface Headers {
): void;
}
-interface Headers extends DomIterable<string, string> {
+declare class Headers implements DomIterable<string, string> {
+ constructor(init?: HeadersInit);
+
/** Appends a new value onto an existing header inside a `Headers` object, or
* adds the header if it does not already exist.
*/
@@ -406,11 +411,6 @@ interface Headers extends DomIterable<string, string> {
[Symbol.iterator](): IterableIterator<[string, string]>;
}
-declare const Headers: {
- prototype: Headers;
- new (init?: HeadersInit): Headers;
-};
-
type RequestInfo = Request | string;
type RequestCache =
| "default"
@@ -524,7 +524,9 @@ interface RequestInit {
}
/** This Fetch API interface represents a resource request. */
-interface Request extends Body {
+declare class Request implements Body {
+ constructor(input: RequestInfo, init?: RequestInit);
+
/**
* Returns the cache mode associated with request, which is a string
* indicating how the request will interact with the browser's cache when
@@ -608,28 +610,101 @@ interface Request extends Body {
*/
readonly url: string;
clone(): Request;
+
+ /** A simple getter used to expose a `ReadableStream` of the body contents. */
+ readonly body: ReadableStream<Uint8Array> | null;
+ /** Stores a `Boolean` that declares whether the body has been used in a
+ * response yet.
+ */
+ readonly bodyUsed: boolean;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with an `ArrayBuffer`.
+ */
+ arrayBuffer(): Promise<ArrayBuffer>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with a `Blob`.
+ */
+ blob(): Promise<Blob>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with a `FormData` object.
+ */
+ formData(): Promise<FormData>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with the result of parsing the body text as JSON.
+ */
+ json(): Promise<any>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with a `USVString` (text).
+ */
+ text(): Promise<string>;
}
-declare const Request: {
- prototype: Request;
- new (input: RequestInfo, init?: RequestInit): Request;
-};
+interface ResponseInit {
+ headers?: HeadersInit;
+ status?: number;
+ statusText?: string;
+}
-declare const Response: {
- prototype: Response;
- new (body?: BodyInit | null, init?: ResponseInit): Response;
- error(): Response;
- redirect(url: string, status?: number): Response;
-};
+type ResponseType =
+ | "basic"
+ | "cors"
+ | "default"
+ | "error"
+ | "opaque"
+ | "opaqueredirect";
-/** Fetch a resource from the network. It returns a Promise that resolves to the
- * Response to that request, whether it is successful or not.
- *
- * const response = await fetch("http://my.json.host/data.json");
- * console.log(response.status); // e.g. 200
- * console.log(response.statusText); // e.g. "OK"
- * const jsonData = await response.json();
+/** This Fetch API interface represents the response to a request. */
+declare class Response implements Body {
+ constructor(body?: BodyInit | null, init?: ResponseInit);
+ static error(): Response;
+ static redirect(url: string, status?: number): Response;
+
+ readonly headers: Headers;
+ readonly ok: boolean;
+ readonly redirected: boolean;
+ readonly status: number;
+ readonly statusText: string;
+ readonly trailer: Promise<Headers>;
+ readonly type: ResponseType;
+ readonly url: string;
+ clone(): Response;
+
+ /** A simple getter used to expose a `ReadableStream` of the body contents. */
+ readonly body: ReadableStream<Uint8Array> | null;
+ /** Stores a `Boolean` that declares whether the body has been used in a
+ * response yet.
+ */
+ readonly bodyUsed: boolean;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with an `ArrayBuffer`.
+ */
+ arrayBuffer(): Promise<ArrayBuffer>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with a `Blob`.
+ */
+ blob(): Promise<Blob>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with a `FormData` object.
+ */
+ formData(): Promise<FormData>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with the result of parsing the body text as JSON.
*/
+ json(): Promise<any>;
+ /** Takes a `Response` stream and reads it to completion. It returns a promise
+ * that resolves with a `USVString` (text).
+ */
+ text(): Promise<string>;
+}
+
+/** Fetch a resource from the network. It returns a Promise that resolves to the
+ * Response to that request, whether it is successful or not.
+ *
+ * const response = await fetch("http://my.json.host/data.json");
+ * console.log(response.status); // e.g. 200
+ * console.log(response.statusText); // e.g. "OK"
+ * const jsonData = await response.json();
+ */
declare function fetch(
input: Request | URL | string,
init?: RequestInit,