/// --- FETCH --- /// /// type RequestRedirect = 'follow' | 'error' | 'manual' type ResponseType = 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect' interface RequestInit { // whatwg/fetch standard options body?: string headers?: { [index: string]: string } method?: string redirect?: RequestRedirect // custom DCL property timeout?: number } interface ReadOnlyHeaders { get(name: string): string | null has(name: string): boolean forEach(callbackfn: (value: string, key: string, parent: ReadOnlyHeaders) => void, thisArg?: any): void } interface Response { readonly headers: ReadOnlyHeaders readonly ok: boolean readonly redirected: boolean readonly status: number readonly statusText: string readonly type: ResponseType readonly url: string json(): Promise text(): Promise } declare function fetch(url: string, init?: RequestInit): Promise /// --- WebSocket --- interface Event { readonly type: string } interface MessageEvent extends Event { /** * Returns the data of the message. */ readonly data: any } interface CloseEvent extends Event { readonly code: number readonly reason: string readonly wasClean: boolean } interface WebSocket { readonly bufferedAmount: number readonly extensions: string onclose: ((this: WebSocket, ev: CloseEvent) => any) | null onerror: ((this: WebSocket, ev: Event) => any) | null onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null onopen: ((this: WebSocket, ev: Event) => any) | null readonly protocol: string readonly readyState: number readonly url: string close(code?: number, reason?: string): void send(data: string): void readonly CLOSED: number readonly CLOSING: number readonly CONNECTING: number readonly OPEN: number } declare var WebSocket: { prototype: WebSocket new (url: string, protocols?: string | string[]): WebSocket readonly CLOSED: number readonly CLOSING: number readonly CONNECTING: number readonly OPEN: number } declare var console: { log(message?: any, ...optionalParams: any[]): void error(message?: any, ...optionalParams: any[]): void } /// --- Timers --- declare function setTimeout(callback: () => void, ms: number): number declare function clearTimeout(timerId: number): void declare function setInterval(callback: () => void, ms: number): number declare function clearInterval(timerId: number): void declare const DEBUG: boolean