/*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /// ///////////////////////////// /// Worker APIs ///////////////////////////// interface Algorithm { name: string; } interface CacheQueryOptions { cacheName?: string; ignoreMethod?: boolean; ignoreSearch?: boolean; ignoreVary?: boolean; } interface CloseEventInit extends EventInit { code?: number; reason?: string; wasClean?: boolean; } interface EventInit { scoped?: boolean; bubbles?: boolean; cancelable?: boolean; } interface GetNotificationOptions { tag?: string; } interface IDBIndexParameters { multiEntry?: boolean; unique?: boolean; } interface IDBObjectStoreParameters { autoIncrement?: boolean; keyPath?: string | string[]; } interface KeyAlgorithm { name?: string; } interface MessageEventInit extends EventInit { lastEventId?: string; channel?: string; data?: any; origin?: string; ports?: MessagePort[]; source?: any; } interface NotificationOptions { body?: string; dir?: NotificationDirection; icon?: string; lang?: string; tag?: string; } interface ObjectURLOptions { oneTimeOnly?: boolean; } interface PushSubscriptionOptionsInit { applicationServerKey?: any; userVisibleOnly?: boolean; } interface RequestInit { body?: any; cache?: RequestCache; credentials?: RequestCredentials; headers?: HeadersInit; integrity?: string; keepalive?: boolean; method?: string; mode?: RequestMode; redirect?: RequestRedirect; referrer?: string; referrerPolicy?: ReferrerPolicy; window?: any; } interface ResponseInit { headers?: HeadersInit; status?: number; statusText?: string; } interface ClientQueryOptions { includeUncontrolled?: boolean; type?: ClientType; } interface ExtendableEventInit extends EventInit { } interface ExtendableMessageEventInit extends ExtendableEventInit { data?: any; origin?: string; lastEventId?: string; source?: Client | ServiceWorker | MessagePort | null; ports?: MessagePort[] | null; } interface FetchEventInit extends ExtendableEventInit { request: Request; clientId?: string | null; isReload?: boolean; } interface NotificationEventInit extends ExtendableEventInit { notification: Notification; action?: string; } interface PushEventInit extends ExtendableEventInit { data?: any; } interface SyncEventInit extends ExtendableEventInit { tag: string; lastChance?: boolean; } interface EventListener { (evt: Event): void; } interface WebKitEntriesCallback { (evt: Event): void; } interface WebKitErrorCallback { (evt: Event): void; } interface WebKitFileCallback { (evt: Event): void; } interface AudioBuffer { readonly duration: number; readonly length: number; readonly numberOfChannels: number; readonly sampleRate: number; copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void; copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void; getChannelData(channel: number): Float32Array; } declare var AudioBuffer: { prototype: AudioBuffer; new(): AudioBuffer; }; interface Blob { readonly size: number; readonly type: string; msClose(): void; msDetachStream(): any; slice(start?: number, end?: number, contentType?: string): Blob; } declare var Blob: { prototype: Blob; new (blobParts?: any[], options?: BlobPropertyBag): Blob; }; interface Cache { add(request: RequestInfo): Promise; addAll(requests: RequestInfo[]): Promise; delete(request: RequestInfo, options?: CacheQueryOptions): Promise; keys(request?: RequestInfo, options?: CacheQueryOptions): Promise; match(request: RequestInfo, options?: CacheQueryOptions): Promise; matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise; put(request: RequestInfo, response: Response): Promise; } declare var Cache: { prototype: Cache; new(): Cache; }; interface CacheStorage { delete(cacheName: string): Promise; has(cacheName: string): Promise; keys(): Promise; match(request: RequestInfo, options?: CacheQueryOptions): Promise; open(cacheName: string): Promise; } declare var CacheStorage: { prototype: CacheStorage; new(): CacheStorage; }; interface CloseEvent extends Event { readonly code: number; readonly reason: string; readonly wasClean: boolean; initCloseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, wasCleanArg: boolean, codeArg: number, reasonArg: string): void; } declare var CloseEvent: { prototype: CloseEvent; new(typeArg: string, eventInitDict?: CloseEventInit): CloseEvent; }; interface Console { assert(test?: boolean, message?: string, ...optionalParams: any[]): void; clear(): void; count(countTitle?: string): void; debug(message?: any, ...optionalParams: any[]): void; dir(value?: any, ...optionalParams: any[]): void; dirxml(value: any): void; error(message?: any, ...optionalParams: any[]): void; exception(message?: string, ...optionalParams: any[]): void; group(groupTitle?: string, ...optionalParams: any[]): void; groupCollapsed(groupTitle?: string, ...optionalParams: any[]): void; groupEnd(): void; info(message?: any, ...optionalParams: any[]): void; log(message?: any, ...optionalParams: any[]): void; msIsIndependentlyComposed(element: any): boolean; profile(reportName?: string): void; profileEnd(): void; select(element: any): void; table(...data: any[]): void; time(timerName?: string): void; timeEnd(timerName?: string): void; trace(message?: any, ...optionalParams: any[]): void; warn(message?: any, ...optionalParams: any[]): void; } declare var Console: { prototype: Console; new(): Console; }; interface Coordinates { readonly accuracy: number; readonly altitude: number | null; readonly altitudeAccuracy: number | null; readonly heading: number | null; readonly latitude: number; readonly longitude: number; readonly speed: number | null; } declare var Coordinates: { prototype: Coordinates; new(): Coordinates; }; interface CryptoKey { readonly algorithm: KeyAlgorithm; readonly extractable: boolean; readonly type: string; readonly usages: string[]; } declare var CryptoKey: { prototype: CryptoKey; new(): CryptoKey; }; interface DOMError { readonly name: string; toString(): string; } declare var DOMError: { prototype: DOMError; new(): DOMError; }; interface DOMException { readonly code: number; readonly message: string; readonly name: string; toString(): string; readonly ABORT_ERR: number; readonly DATA_CLONE_ERR: number; readonly DOMSTRING_SIZE_ERR: number; readonly HIERARCHY_REQUEST_ERR: number; readonly INDEX_SIZE_ERR: number; readonly INUSE_ATTRIBUTE_ERR: number; readonly INVALID_ACCESS_ERR: number; readonly INVALID_CHARACTER_ERR: number; readonly INVALID_MODIFICATION_ERR: number; readonly INVALID_NODE_TYPE_ERR: number; readonly INVALID_STATE_ERR: number; readonly NAMESPACE_ERR: number; readonly NETWORK_ERR: number; readonly NO_DATA_ALLOWED_ERR: number; readonly NO_MODIFICATION_ALLOWED_ERR: number; readonly NOT_FOUND_ERR: number; readonly NOT_SUPPORTED_ERR: number; readonly PARSE_ERR: number; readonly QUOTA_EXCEEDED_ERR: number; readonly SECURITY_ERR: number; readonly SERIALIZE_ERR: number; readonly SYNTAX_ERR: number; readonly TIMEOUT_ERR: number; readonly TYPE_MISMATCH_ERR: number; readonly URL_MISMATCH_ERR: number; readonly VALIDATION_ERR: number; readonly WRONG_DOCUMENT_ERR: number; } declare var DOMException: { prototype: DOMException; new(message?: string, name?: string): DOMException; readonly ABORT_ERR: number; readonly DATA_CLONE_ERR: number; readonly DOMSTRING_SIZE_ERR: number; readonly HIERARCHY_REQUEST_ERR: number; readonly INDEX_SIZE_ERR: number; readonly INUSE_ATTRIBUTE_ERR: number; readonly INVALID_ACCESS_ERR: number; readonly INVALID_CHARACTER_ERR: number; readonly INVALID_MODIFICATION_ERR: number; readonly INVALID_NODE_TYPE_ERR: number; readonly INVALID_STATE_ERR: number; readonly NAMESPACE_ERR: number; readonly NETWORK_ERR: number; readonly NO_DATA_ALLOWED_ERR: number; readonly NO_MODIFICATION_ALLOWED_ERR: number; readonly NOT_FOUND_ERR: number; readonly NOT_SUPPORTED_ERR: number; readonly PARSE_ERR: number; readonly QUOTA_EXCEEDED_ERR: number; readonly SECURITY_ERR: number; readonly SERIALIZE_ERR: number; readonly SYNTAX_ERR: number; readonly TIMEOUT_ERR: number; readonly TYPE_MISMATCH_ERR: number; readonly URL_MISMATCH_ERR: number; readonly VALIDATION_ERR: number; readonly WRONG_DOCUMENT_ERR: number; }; interface DOMStringList { readonly length: number; contains(str: string): boolean; item(index: number): string | null; [index: number]: string; } declare var DOMStringList: { prototype: DOMStringList; new(): DOMStringList; }; interface ErrorEvent extends Event { readonly colno: number; readonly error: any; readonly filename: string; readonly lineno: number; readonly message: string; initErrorEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, messageArg: string, filenameArg: string, linenoArg: number): void; } declare var ErrorEvent: { prototype: ErrorEvent; new(type: string, errorEventInitDict?: ErrorEventInit): ErrorEvent; }; interface Event { readonly bubbles: boolean; readonly cancelable: boolean; cancelBubble: boolean; readonly currentTarget: EventTarget; readonly defaultPrevented: boolean; readonly eventPhase: number; readonly isTrusted: boolean; returnValue: boolean; readonly srcElement: any; readonly target: EventTarget; readonly timeStamp: number; readonly type: string; readonly scoped: boolean; initEvent(eventTypeArg: string, canBubbleArg: boolean, cancelableArg: boolean): void; preventDefault(): void; stopImmediatePropagation(): void; stopPropagation(): void; deepPath(): EventTarget[]; readonly AT_TARGET: number; readonly BUBBLING_PHASE: number; readonly CAPTURING_PHASE: number; } declare var Event: { prototype: Event; new(typeArg: string, eventInitDict?: EventInit): Event; readonly AT_TARGET: number; readonly BUBBLING_PHASE: number; readonly CAPTURING_PHASE: number; }; interface EventTarget { addEventListener(type: string, listener?: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; dispatchEvent(evt: Event): boolean; removeEventListener(type: string, listener?: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var EventTarget: { prototype: EventTarget; new(): EventTarget; }; interface File extends Blob { readonly lastModifiedDate: any; readonly name: string; readonly webkitRelativePath: string; } declare var File: { prototype: File; new (parts: (ArrayBuffer | ArrayBufferView | Blob | string)[], filename: string, properties?: FilePropertyBag): File; }; interface FileList { readonly length: number; item(index: number): File; [index: number]: File; } declare var FileList: { prototype: FileList; new(): FileList; }; interface FileReader extends EventTarget, MSBaseReader { readonly error: DOMError; readAsArrayBuffer(blob: Blob): void; readAsBinaryString(blob: Blob): void; readAsDataURL(blob: Blob): void; readAsText(blob: Blob, encoding?: string): void; addEventListener(type: K, listener: (this: FileReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: FileReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var FileReader: { prototype: FileReader; new(): FileReader; }; interface FormData { append(name: string, value: string | Blob, fileName?: string): void; } declare var FormData: { prototype: FormData; new(): FormData; }; interface Headers { append(name: string, value: string): void; delete(name: string): void; forEach(callback: ForEachCallback): void; get(name: string): string | null; has(name: string): boolean; set(name: string, value: string): void; } declare var Headers: { prototype: Headers; new(init?: HeadersInit): Headers; }; interface IDBCursor { readonly direction: IDBCursorDirection; key: IDBKeyRange | IDBValidKey; readonly primaryKey: any; source: IDBObjectStore | IDBIndex; advance(count: number): void; continue(key?: IDBKeyRange | IDBValidKey): void; delete(): IDBRequest; update(value: any): IDBRequest; readonly NEXT: string; readonly NEXT_NO_DUPLICATE: string; readonly PREV: string; readonly PREV_NO_DUPLICATE: string; } declare var IDBCursor: { prototype: IDBCursor; new(): IDBCursor; readonly NEXT: string; readonly NEXT_NO_DUPLICATE: string; readonly PREV: string; readonly PREV_NO_DUPLICATE: string; }; interface IDBCursorWithValue extends IDBCursor { readonly value: any; } declare var IDBCursorWithValue: { prototype: IDBCursorWithValue; new(): IDBCursorWithValue; }; interface IDBDatabaseEventMap { "abort": Event; "error": Event; } interface IDBDatabase extends EventTarget { readonly name: string; readonly objectStoreNames: DOMStringList; onabort: (this: IDBDatabase, ev: Event) => any; onerror: (this: IDBDatabase, ev: Event) => any; version: number; onversionchange: (ev: IDBVersionChangeEvent) => any; close(): void; createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore; deleteObjectStore(name: string): void; transaction(storeNames: string | string[], mode?: IDBTransactionMode): IDBTransaction; addEventListener(type: "versionchange", listener: (this: IDBDatabase, ev: IDBVersionChangeEvent) => any, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: "versionchange", listener: (this: IDBDatabase, ev: IDBVersionChangeEvent) => any, options?: boolean | EventListenerOptions): void; addEventListener(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var IDBDatabase: { prototype: IDBDatabase; new(): IDBDatabase; }; interface IDBFactory { cmp(first: any, second: any): number; deleteDatabase(name: string): IDBOpenDBRequest; open(name: string, version?: number): IDBOpenDBRequest; } declare var IDBFactory: { prototype: IDBFactory; new(): IDBFactory; }; interface IDBIndex { keyPath: string | string[]; readonly name: string; readonly objectStore: IDBObjectStore; readonly unique: boolean; multiEntry: boolean; count(key?: IDBKeyRange | IDBValidKey): IDBRequest; get(key: IDBKeyRange | IDBValidKey): IDBRequest; getKey(key: IDBKeyRange | IDBValidKey): IDBRequest; openCursor(range?: IDBKeyRange | IDBValidKey, direction?: IDBCursorDirection): IDBRequest; openKeyCursor(range?: IDBKeyRange | IDBValidKey, direction?: IDBCursorDirection): IDBRequest; } declare var IDBIndex: { prototype: IDBIndex; new(): IDBIndex; }; interface IDBKeyRange { readonly lower: any; readonly lowerOpen: boolean; readonly upper: any; readonly upperOpen: boolean; } declare var IDBKeyRange: { prototype: IDBKeyRange; new(): IDBKeyRange; bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange; lowerBound(lower: any, open?: boolean): IDBKeyRange; only(value: any): IDBKeyRange; upperBound(upper: any, open?: boolean): IDBKeyRange; }; interface IDBObjectStore { readonly indexNames: DOMStringList; keyPath: string | string[]; readonly name: string; readonly transaction: IDBTransaction; autoIncrement: boolean; add(value: any, key?: IDBKeyRange | IDBValidKey): IDBRequest; clear(): IDBRequest; count(key?: IDBKeyRange | IDBValidKey): IDBRequest; createIndex(name: string, keyPath: string | string[], optionalParameters?: IDBIndexParameters): IDBIndex; delete(key: IDBKeyRange | IDBValidKey): IDBRequest; deleteIndex(indexName: string): void; get(key: any): IDBRequest; index(name: string): IDBIndex; openCursor(range?: IDBKeyRange | IDBValidKey, direction?: IDBCursorDirection): IDBRequest; put(value: any, key?: IDBKeyRange | IDBValidKey): IDBRequest; } declare var IDBObjectStore: { prototype: IDBObjectStore; new(): IDBObjectStore; }; interface IDBOpenDBRequestEventMap extends IDBRequestEventMap { "blocked": Event; "upgradeneeded": IDBVersionChangeEvent; } interface IDBOpenDBRequest extends IDBRequest { onblocked: (this: IDBOpenDBRequest, ev: Event) => any; onupgradeneeded: (this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any; addEventListener(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var IDBOpenDBRequest: { prototype: IDBOpenDBRequest; new(): IDBOpenDBRequest; }; interface IDBRequestEventMap { "error": Event; "success": Event; } interface IDBRequest extends EventTarget { readonly error: DOMException; onerror: (this: IDBRequest, ev: Event) => any; onsuccess: (this: IDBRequest, ev: Event) => any; readonly readyState: IDBRequestReadyState; readonly result: any; source: IDBObjectStore | IDBIndex | IDBCursor; readonly transaction: IDBTransaction; addEventListener(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var IDBRequest: { prototype: IDBRequest; new(): IDBRequest; }; interface IDBTransactionEventMap { "abort": Event; "complete": Event; "error": Event; } interface IDBTransaction extends EventTarget { readonly db: IDBDatabase; readonly error: DOMException; readonly mode: IDBTransactionMode; onabort: (this: IDBTransaction, ev: Event) => any; oncomplete: (this: IDBTransaction, ev: Event) => any; onerror: (this: IDBTransaction, ev: Event) => any; abort(): void; objectStore(name: string): IDBObjectStore; readonly READ_ONLY: string; readonly READ_WRITE: string; readonly VERSION_CHANGE: string; addEventListener(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var IDBTransaction: { prototype: IDBTransaction; new(): IDBTransaction; readonly READ_ONLY: string; readonly READ_WRITE: string; readonly VERSION_CHANGE: string; }; interface IDBVersionChangeEvent extends Event { readonly newVersion: number | null; readonly oldVersion: number; } declare var IDBVersionChangeEvent: { prototype: IDBVersionChangeEvent; new(): IDBVersionChangeEvent; }; interface ImageData { data: Uint8ClampedArray; readonly height: number; readonly width: number; } declare var ImageData: { prototype: ImageData; new(width: number, height: number): ImageData; new(array: Uint8ClampedArray, width: number, height: number): ImageData; }; interface MessageChannel { readonly port1: MessagePort; readonly port2: MessagePort; } declare var MessageChannel: { prototype: MessageChannel; new(): MessageChannel; }; interface MessageEvent extends Event { readonly data: any; readonly origin: string; readonly ports: any; readonly source: any; initMessageEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, dataArg: any, originArg: string, lastEventIdArg: string, sourceArg: any): void; } declare var MessageEvent: { prototype: MessageEvent; new(type: string, eventInitDict?: MessageEventInit): MessageEvent; }; interface MessagePortEventMap { "message": MessageEvent; } interface MessagePort extends EventTarget { onmessage: (this: MessagePort, ev: MessageEvent) => any; close(): void; postMessage(message?: any, transfer?: any[]): void; start(): void; addEventListener(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var MessagePort: { prototype: MessagePort; new(): MessagePort; }; interface NotificationEventMap { "click": Event; "close": Event; "error": Event; "show": Event; } interface Notification extends EventTarget { readonly body: string; readonly dir: NotificationDirection; readonly icon: string; readonly lang: string; onclick: (this: Notification, ev: Event) => any; onclose: (this: Notification, ev: Event) => any; onerror: (this: Notification, ev: Event) => any; onshow: (this: Notification, ev: Event) => any; readonly permission: NotificationPermission; readonly tag: string; readonly title: string; close(): void; addEventListener(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var Notification: { prototype: Notification; new(title: string, options?: NotificationOptions): Notification; requestPermission(callback?: NotificationPermissionCallback): Promise; }; interface Performance { readonly navigation: PerformanceNavigation; readonly timing: PerformanceTiming; clearMarks(markName?: string): void; clearMeasures(measureName?: string): void; clearResourceTimings(): void; getEntries(): any; getEntriesByName(name: string, entryType?: string): any; getEntriesByType(entryType: string): any; getMarks(markName?: string): any; getMeasures(measureName?: string): any; mark(markName: string): void; measure(measureName: string, startMarkName?: string, endMarkName?: string): void; now(): number; setResourceTimingBufferSize(maxSize: number): void; toJSON(): any; } declare var Performance: { prototype: Performance; new(): Performance; }; interface PerformanceNavigation { readonly redirectCount: number; readonly type: number; toJSON(): any; readonly TYPE_BACK_FORWARD: number; readonly TYPE_NAVIGATE: number; readonly TYPE_RELOAD: number; readonly TYPE_RESERVED: number; } declare var PerformanceNavigation: { prototype: PerformanceNavigation; new(): PerformanceNavigation; readonly TYPE_BACK_FORWARD: number; readonly TYPE_NAVIGATE: number; readonly TYPE_RELOAD: number; readonly TYPE_RESERVED: number; }; interface PerformanceTiming { readonly connectEnd: number; readonly connectStart: number; readonly domainLookupEnd: number; readonly domainLookupStart: number; readonly domComplete: number; readonly domContentLoadedEventEnd: number; readonly domContentLoadedEventStart: number; readonly domInteractive: number; readonly domLoading: number; readonly fetchStart: number; readonly loadEventEnd: number; readonly loadEventStart: number; readonly msFirstPaint: number; readonly navigationStart: number; readonly redirectEnd: number; readonly redirectStart: number; readonly requestStart: number; readonly responseEnd: number; readonly responseStart: number; readonly unloadEventEnd: number; readonly unloadEventStart: number; readonly secureConnectionStart: number; toJSON(): any; } declare var PerformanceTiming: { prototype: PerformanceTiming; new(): PerformanceTiming; }; interface Position { readonly coords: Coordinates; readonly timestamp: number; } declare var Position: { prototype: Position; new(): Position; }; interface PositionError { readonly code: number; readonly message: string; toString(): string; readonly PERMISSION_DENIED: number; readonly POSITION_UNAVAILABLE: number; readonly TIMEOUT: number; } declare var PositionError: { prototype: PositionError; new(): PositionError; readonly PERMISSION_DENIED: number; readonly POSITION_UNAVAILABLE: number; readonly TIMEOUT: number; }; interface ProgressEvent extends Event { readonly lengthComputable: boolean; readonly loaded: number; readonly total: number; initProgressEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, lengthComputableArg: boolean, loadedArg: number, totalArg: number): void; } declare var ProgressEvent: { prototype: ProgressEvent; new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent; }; interface PushManager { getSubscription(): Promise; permissionState(options?: PushSubscriptionOptionsInit): Promise; subscribe(options?: PushSubscriptionOptionsInit): Promise; } declare var PushManager: { prototype: PushManager; new(): PushManager; }; interface PushSubscription { readonly endpoint: USVString; readonly options: PushSubscriptionOptions; getKey(name: PushEncryptionKeyName): ArrayBuffer | null; toJSON(): any; unsubscribe(): Promise; } declare var PushSubscription: { prototype: PushSubscription; new(): PushSubscription; }; interface PushSubscriptionOptions { readonly applicationServerKey: ArrayBuffer | null; readonly userVisibleOnly: boolean; } declare var PushSubscriptionOptions: { prototype: PushSubscriptionOptions; new(): PushSubscriptionOptions; }; interface ReadableStream { readonly locked: boolean; cancel(): Promise; getReader(): ReadableStreamReader; } declare var ReadableStream: { prototype: ReadableStream; new(): ReadableStream; }; interface ReadableStreamReader { cancel(): Promise; read(): Promise; releaseLock(): void; } declare var ReadableStreamReader: { prototype: ReadableStreamReader; new(): ReadableStreamReader; }; interface Request extends Object, Body { readonly cache: RequestCache; readonly credentials: RequestCredentials; readonly destination: RequestDestination; readonly headers: Headers; readonly integrity: string; readonly keepalive: boolean; readonly method: string; readonly mode: RequestMode; readonly redirect: RequestRedirect; readonly referrer: string; readonly referrerPolicy: ReferrerPolicy; readonly type: RequestType; readonly url: string; clone(): Request; } declare var Request: { prototype: Request; new(input: Request | string, init?: RequestInit): Request; }; interface Response extends Object, Body { readonly body: ReadableStream | null; readonly headers: Headers; readonly ok: boolean; readonly status: number; readonly statusText: string; readonly type: ResponseType; readonly url: string; readonly redirected: boolean; clone(): Response; } declare var Response: { prototype: Response; new(body?: any, init?: ResponseInit): Response; error: () => Response; redirect: (url: string, status?: number) => Response; }; interface ServiceWorkerEventMap extends AbstractWorkerEventMap { "statechange": Event; } interface ServiceWorker extends EventTarget, AbstractWorker { onstatechange: (this: ServiceWorker, ev: Event) => any; readonly scriptURL: USVString; readonly state: ServiceWorkerState; postMessage(message: any, transfer?: any[]): void; addEventListener(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var ServiceWorker: { prototype: ServiceWorker; new(): ServiceWorker; }; interface ServiceWorkerRegistrationEventMap { "updatefound": Event; } interface ServiceWorkerRegistration extends EventTarget { readonly active: ServiceWorker | null; readonly installing: ServiceWorker | null; onupdatefound: (this: ServiceWorkerRegistration, ev: Event) => any; readonly pushManager: PushManager; readonly scope: USVString; readonly sync: SyncManager; readonly waiting: ServiceWorker | null; getNotifications(filter?: GetNotificationOptions): Promise; showNotification(title: string, options?: NotificationOptions): Promise; unregister(): Promise; update(): Promise; addEventListener(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var ServiceWorkerRegistration: { prototype: ServiceWorkerRegistration; new(): ServiceWorkerRegistration; }; interface SyncManager { getTags(): Promise; register(tag: string): Promise; } declare var SyncManager: { prototype: SyncManager; new(): SyncManager; }; interface URL { hash: string; host: string; hostname: string; href: string; readonly origin: string; password: string; pathname: string; port: string; protocol: string; search: string; username: string; readonly searchParams: URLSearchParams; toString(): string; } declare var URL: { prototype: URL; new(url: string, base?: string): URL; createObjectURL(object: any, options?: ObjectURLOptions): string; revokeObjectURL(url: string): void; }; interface WebSocketEventMap { "close": CloseEvent; "error": Event; "message": MessageEvent; "open": Event; } interface WebSocket extends EventTarget { binaryType: string; readonly bufferedAmount: number; readonly extensions: string; onclose: (this: WebSocket, ev: CloseEvent) => any; onerror: (this: WebSocket, ev: Event) => any; onmessage: (this: WebSocket, ev: MessageEvent) => any; onopen: (this: WebSocket, ev: Event) => any; readonly protocol: string; readonly readyState: number; readonly url: string; close(code?: number, reason?: string): void; send(data: any): void; readonly CLOSED: number; readonly CLOSING: number; readonly CONNECTING: number; readonly OPEN: number; addEventListener(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(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; }; interface WorkerEventMap extends AbstractWorkerEventMap { "message": MessageEvent; } interface Worker extends EventTarget, AbstractWorker { onmessage: (this: Worker, ev: MessageEvent) => any; postMessage(message: any, transfer?: any[]): void; terminate(): void; addEventListener(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var Worker: { prototype: Worker; new(stringUrl: string): Worker; }; interface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap { "readystatechange": Event; } interface XMLHttpRequest extends EventTarget, XMLHttpRequestEventTarget { onreadystatechange: (this: XMLHttpRequest, ev: Event) => any; readonly readyState: number; readonly response: any; readonly responseText: string; responseType: XMLHttpRequestResponseType; readonly responseURL: string; readonly responseXML: any; readonly status: number; readonly statusText: string; timeout: number; readonly upload: XMLHttpRequestUpload; withCredentials: boolean; msCaching?: string; abort(): void; getAllResponseHeaders(): string; getResponseHeader(header: string): string | null; msCachingEnabled(): boolean; open(method: string, url: string, async?: boolean, user?: string, password?: string): void; overrideMimeType(mime: string): void; send(data?: string): void; send(data?: any): void; setRequestHeader(header: string, value: string): void; readonly DONE: number; readonly HEADERS_RECEIVED: number; readonly LOADING: number; readonly OPENED: number; readonly UNSENT: number; addEventListener(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var XMLHttpRequest: { prototype: XMLHttpRequest; new(): XMLHttpRequest; readonly DONE: number; readonly HEADERS_RECEIVED: number; readonly LOADING: number; readonly OPENED: number; readonly UNSENT: number; }; interface XMLHttpRequestUpload extends EventTarget, XMLHttpRequestEventTarget { addEventListener(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var XMLHttpRequestUpload: { prototype: XMLHttpRequestUpload; new(): XMLHttpRequestUpload; }; interface AbstractWorkerEventMap { "error": ErrorEvent; } interface AbstractWorker { onerror: (this: AbstractWorker, ev: ErrorEvent) => any; addEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } interface Body { readonly bodyUsed: boolean; arrayBuffer(): Promise; blob(): Promise; json(): Promise; text(): Promise; } interface GlobalFetch { fetch(input: RequestInfo, init?: RequestInit): Promise; } interface MSBaseReaderEventMap { "abort": Event; "error": ErrorEvent; "load": Event; "loadend": ProgressEvent; "loadstart": Event; "progress": ProgressEvent; } interface MSBaseReader { onabort: (this: MSBaseReader, ev: Event) => any; onerror: (this: MSBaseReader, ev: ErrorEvent) => any; onload: (this: MSBaseReader, ev: Event) => any; onloadend: (this: MSBaseReader, ev: ProgressEvent) => any; onloadstart: (this: MSBaseReader, ev: Event) => any; onprogress: (this: MSBaseReader, ev: ProgressEvent) => any; readonly readyState: number; readonly result: any; abort(): void; readonly DONE: number; readonly EMPTY: number; readonly LOADING: number; addEventListener(type: K, listener: (this: MSBaseReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: MSBaseReader, ev: MSBaseReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } interface NavigatorBeacon { sendBeacon(url: USVString, data?: BodyInit): boolean; } interface NavigatorConcurrentHardware { readonly hardwareConcurrency: number; } interface NavigatorID { readonly appCodeName: string; readonly appName: string; readonly appVersion: string; readonly platform: string; readonly product: string; readonly productSub: string; readonly userAgent: string; readonly vendor: string; readonly vendorSub: string; } interface NavigatorOnLine { readonly onLine: boolean; } interface WindowBase64 { atob(encodedString: string): string; btoa(rawString: string): string; } interface WindowConsole { readonly console: Console; } interface XMLHttpRequestEventTargetEventMap { "abort": Event; "error": ErrorEvent; "load": Event; "loadend": ProgressEvent; "loadstart": Event; "progress": ProgressEvent; "timeout": ProgressEvent; } interface XMLHttpRequestEventTarget { onabort: (this: XMLHttpRequest, ev: Event) => any; onerror: (this: XMLHttpRequest, ev: ErrorEvent) => any; onload: (this: XMLHttpRequest, ev: Event) => any; onloadend: (this: XMLHttpRequest, ev: ProgressEvent) => any; onloadstart: (this: XMLHttpRequest, ev: Event) => any; onprogress: (this: XMLHttpRequest, ev: ProgressEvent) => any; ontimeout: (this: XMLHttpRequest, ev: ProgressEvent) => any; addEventListener(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } interface Client { readonly frameType: FrameType; readonly id: string; readonly url: USVString; postMessage(message: any, transfer?: any[]): void; } declare var Client: { prototype: Client; new(): Client; }; interface Clients { claim(): Promise; get(id: string): Promise; matchAll(options?: ClientQueryOptions): Promise; openWindow(url: USVString): Promise; } declare var Clients: { prototype: Clients; new(): Clients; }; interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap { "message": MessageEvent; } interface DedicatedWorkerGlobalScope extends WorkerGlobalScope { onmessage: (this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any; close(): void; postMessage(message: any, transfer?: any[]): void; addEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var DedicatedWorkerGlobalScope: { prototype: DedicatedWorkerGlobalScope; new(): DedicatedWorkerGlobalScope; }; interface ExtendableEvent extends Event { waitUntil(f: Promise): void; } declare var ExtendableEvent: { prototype: ExtendableEvent; new(type: string, eventInitDict?: ExtendableEventInit): ExtendableEvent; }; interface ExtendableMessageEvent extends ExtendableEvent { readonly data: any; readonly lastEventId: string; readonly origin: string; readonly ports: MessagePort[] | null; readonly source: Client | ServiceWorker | MessagePort | null; } declare var ExtendableMessageEvent: { prototype: ExtendableMessageEvent; new(type: string, eventInitDict?: ExtendableMessageEventInit): ExtendableMessageEvent; }; interface FetchEvent extends ExtendableEvent { readonly clientId: string | null; readonly isReload: boolean; readonly request: Request; respondWith(r: Promise): void; } declare var FetchEvent: { prototype: FetchEvent; new(type: string, eventInitDict: FetchEventInit): FetchEvent; }; interface FileReaderSync { readAsArrayBuffer(blob: Blob): any; readAsBinaryString(blob: Blob): void; readAsDataURL(blob: Blob): string; readAsText(blob: Blob, encoding?: string): string; } declare var FileReaderSync: { prototype: FileReaderSync; new(): FileReaderSync; }; interface NotificationEvent extends ExtendableEvent { readonly action: string; readonly notification: Notification; } declare var NotificationEvent: { prototype: NotificationEvent; new(type: string, eventInitDict: NotificationEventInit): NotificationEvent; }; interface PushEvent extends ExtendableEvent { readonly data: PushMessageData | null; } declare var PushEvent: { prototype: PushEvent; new(type: string, eventInitDict?: PushEventInit): PushEvent; }; interface PushMessageData { arrayBuffer(): ArrayBuffer; blob(): Blob; json(): JSON; text(): USVString; } declare var PushMessageData: { prototype: PushMessageData; new(): PushMessageData; }; interface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap { "activate": ExtendableEvent; "fetch": FetchEvent; "install": ExtendableEvent; "message": ExtendableMessageEvent; "notificationclick": NotificationEvent; "notificationclose": NotificationEvent; "push": PushEvent; "pushsubscriptionchange": ExtendableEvent; "sync": SyncEvent; } interface ServiceWorkerGlobalScope extends WorkerGlobalScope { readonly clients: Clients; onactivate: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any; onfetch: (this: ServiceWorkerGlobalScope, ev: FetchEvent) => any; oninstall: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any; onmessage: (this: ServiceWorkerGlobalScope, ev: ExtendableMessageEvent) => any; onnotificationclick: (this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any; onnotificationclose: (this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any; onpush: (this: ServiceWorkerGlobalScope, ev: PushEvent) => any; onpushsubscriptionchange: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any; onsync: (this: ServiceWorkerGlobalScope, ev: SyncEvent) => any; readonly registration: ServiceWorkerRegistration; skipWaiting(): Promise; addEventListener(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var ServiceWorkerGlobalScope: { prototype: ServiceWorkerGlobalScope; new(): ServiceWorkerGlobalScope; }; interface SyncEvent extends ExtendableEvent { readonly lastChance: boolean; readonly tag: string; } declare var SyncEvent: { prototype: SyncEvent; new(type: string, init: SyncEventInit): SyncEvent; }; interface WindowClient extends Client { readonly focused: boolean; readonly visibilityState: VisibilityState; focus(): Promise; navigate(url: USVString): Promise; } declare var WindowClient: { prototype: WindowClient; new(): WindowClient; }; interface WorkerGlobalScopeEventMap { "error": ErrorEvent; } interface WorkerGlobalScope extends EventTarget, WorkerUtils, WindowConsole, GlobalFetch { readonly caches: CacheStorage; readonly isSecureContext: boolean; readonly location: WorkerLocation; onerror: (this: WorkerGlobalScope, ev: ErrorEvent) => any; readonly performance: Performance; readonly self: WorkerGlobalScope; msWriteProfilerMark(profilerMarkName: string): void; createImageBitmap(image: ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise; createImageBitmap(image: ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise; addEventListener(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var WorkerGlobalScope: { prototype: WorkerGlobalScope; new(): WorkerGlobalScope; }; interface WorkerLocation { readonly hash: string; readonly host: string; readonly hostname: string; readonly href: string; readonly origin: string; readonly pathname: string; readonly port: string; readonly protocol: string; readonly search: string; toString(): string; } declare var WorkerLocation: { prototype: WorkerLocation; new(): WorkerLocation; }; interface WorkerNavigator extends Object, NavigatorID, NavigatorOnLine, NavigatorBeacon, NavigatorConcurrentHardware { readonly hardwareConcurrency: number; } declare var WorkerNavigator: { prototype: WorkerNavigator; new(): WorkerNavigator; }; interface WorkerUtils extends Object, WindowBase64 { readonly indexedDB: IDBFactory; readonly msIndexedDB: IDBFactory; readonly navigator: WorkerNavigator; clearImmediate(handle: number): void; clearInterval(handle: number): void; clearTimeout(handle: number): void; importScripts(...urls: string[]): void; setImmediate(handler: (...args: any[]) => void): number; setImmediate(handler: any, ...args: any[]): number; setInterval(handler: (...args: any[]) => void, timeout: number): number; setInterval(handler: any, timeout?: any, ...args: any[]): number; setTimeout(handler: (...args: any[]) => void, timeout: number): number; setTimeout(handler: any, timeout?: any, ...args: any[]): number; } interface BroadcastChannel extends EventTarget { readonly name: string; onmessage: (ev: MessageEvent) => any; onmessageerror: (ev: MessageEvent) => any; close(): void; postMessage(message: any): void; addEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var BroadcastChannel: { prototype: BroadcastChannel; new(name: string): BroadcastChannel; }; interface BroadcastChannelEventMap { message: MessageEvent; messageerror: MessageEvent; } interface ErrorEventInit { message?: string; filename?: string; lineno?: number; conlno?: number; error?: any; } interface ImageBitmapOptions { imageOrientation?: "none" | "flipY"; premultiplyAlpha?: "none" | "premultiply" | "default"; colorSpaceConversion?: "none" | "default"; resizeWidth?: number; resizeHeight?: number; resizeQuality?: "pixelated" | "low" | "medium" | "high"; } interface ImageBitmap { readonly width: number; readonly height: number; close(): void; } interface URLSearchParams { /** * Appends a specified key/value pair as a new search parameter. */ append(name: string, value: string): void; /** * Deletes the given search parameter, and its associated value, from the list of all search parameters. */ delete(name: string): void; /** * Returns the first value associated to the given search parameter. */ get(name: string): string | null; /** * Returns all the values association with a given search parameter. */ getAll(name: string): string[]; /** * Returns a Boolean indicating if such a search parameter exists. */ has(name: string): boolean; /** * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */ set(name: string, value: string): void; } declare var URLSearchParams: { prototype: URLSearchParams; /** * Constructor returning a URLSearchParams object. */ new (init?: string | URLSearchParams): URLSearchParams; }; interface BlobPropertyBag { type?: string; endings?: string; } interface FilePropertyBag extends BlobPropertyBag { lastModified?: number; } interface EventListenerObject { handleEvent(evt: Event): void; } interface ProgressEventInit extends EventInit { lengthComputable?: boolean; loaded?: number; total?: number; } interface IDBArrayKey extends Array { } interface RsaKeyGenParams extends Algorithm { modulusLength: number; publicExponent: Uint8Array; } interface RsaHashedKeyGenParams extends RsaKeyGenParams { hash: AlgorithmIdentifier; } interface RsaKeyAlgorithm extends KeyAlgorithm { modulusLength: number; publicExponent: Uint8Array; } interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm { hash: AlgorithmIdentifier; } interface RsaHashedImportParams { hash: AlgorithmIdentifier; } interface RsaPssParams { saltLength: number; } interface RsaOaepParams extends Algorithm { label?: BufferSource; } interface EcdsaParams extends Algorithm { hash: AlgorithmIdentifier; } interface EcKeyGenParams extends Algorithm { namedCurve: string; } interface EcKeyAlgorithm extends KeyAlgorithm { typedCurve: string; } interface EcKeyImportParams extends Algorithm { namedCurve: string; } interface EcdhKeyDeriveParams extends Algorithm { public: CryptoKey; } interface AesCtrParams extends Algorithm { counter: BufferSource; length: number; } interface AesKeyAlgorithm extends KeyAlgorithm { length: number; } interface AesKeyGenParams extends Algorithm { length: number; } interface AesDerivedKeyParams extends Algorithm { length: number; } interface AesCbcParams extends Algorithm { iv: BufferSource; } interface AesCmacParams extends Algorithm { length: number; } interface AesGcmParams extends Algorithm { iv: BufferSource; additionalData?: BufferSource; tagLength?: number; } interface AesCfbParams extends Algorithm { iv: BufferSource; } interface HmacImportParams extends Algorithm { hash?: AlgorithmIdentifier; length?: number; } interface HmacKeyAlgorithm extends KeyAlgorithm { hash: AlgorithmIdentifier; length: number; } interface HmacKeyGenParams extends Algorithm { hash: AlgorithmIdentifier; length?: number; } interface DhKeyGenParams extends Algorithm { prime: Uint8Array; generator: Uint8Array; } interface DhKeyAlgorithm extends KeyAlgorithm { prime: Uint8Array; generator: Uint8Array; } interface DhKeyDeriveParams extends Algorithm { public: CryptoKey; } interface DhImportKeyParams extends Algorithm { prime: Uint8Array; generator: Uint8Array; } interface ConcatParams extends Algorithm { hash?: AlgorithmIdentifier; algorithmId: Uint8Array; partyUInfo: Uint8Array; partyVInfo: Uint8Array; publicInfo?: Uint8Array; privateInfo?: Uint8Array; } interface HkdfCtrParams extends Algorithm { hash: AlgorithmIdentifier; label: BufferSource; context: BufferSource; } interface Pbkdf2Params extends Algorithm { salt: BufferSource; iterations: number; hash: AlgorithmIdentifier; } interface RsaOtherPrimesInfo { r: string; d: string; t: string; } interface JsonWebKey { kty: string; use?: string; key_ops?: string[]; alg?: string; kid?: string; x5u?: string; x5c?: string; x5t?: string; ext?: boolean; crv?: string; x?: string; y?: string; d?: string; n?: string; e?: string; p?: string; q?: string; dp?: string; dq?: string; qi?: string; oth?: RsaOtherPrimesInfo[]; k?: string; } interface EventListenerOptions { capture?: boolean; } interface AddEventListenerOptions extends EventListenerOptions { passive?: boolean; once?: boolean; } declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject; interface DecodeErrorCallback { (error: DOMException): void; } interface DecodeSuccessCallback { (decodedData: AudioBuffer): void; } interface ErrorEventHandler { (message: string, filename?: string, lineno?: number, colno?: number, error?: Error): void; } interface ForEachCallback { (keyId: any, status: MediaKeyStatus): void; } interface FunctionStringCallback { (data: string): void; } interface NotificationPermissionCallback { (permission: NotificationPermission): void; } interface PositionCallback { (position: Position): void; } interface PositionErrorCallback { (error: PositionError): void; } declare var onmessage: (this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any; declare function close(): void; declare function postMessage(message: any, transfer?: any[]): void; declare var caches: CacheStorage; declare var isSecureContext: boolean; declare var location: WorkerLocation; declare var onerror: (this: DedicatedWorkerGlobalScope, ev: ErrorEvent) => any; declare var performance: Performance; declare var self: WorkerGlobalScope; declare function msWriteProfilerMark(profilerMarkName: string): void; declare function createImageBitmap(image: ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise; declare function createImageBitmap(image: ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise; declare function dispatchEvent(evt: Event): boolean; declare var indexedDB: IDBFactory; declare var msIndexedDB: IDBFactory; declare var navigator: WorkerNavigator; declare function clearImmediate(handle: number): void; declare function clearInterval(handle: number): void; declare function clearTimeout(handle: number): void; declare function importScripts(...urls: string[]): void; declare function setImmediate(handler: (...args: any[]) => void): number; declare function setImmediate(handler: any, ...args: any[]): number; declare function setInterval(handler: (...args: any[]) => void, timeout: number): number; declare function setInterval(handler: any, timeout?: any, ...args: any[]): number; declare function setTimeout(handler: (...args: any[]) => void, timeout: number): number; declare function setTimeout(handler: any, timeout?: any, ...args: any[]): number; declare function atob(encodedString: string): string; declare function btoa(rawString: string): string; declare var console: Console; declare function fetch(input: RequestInfo, init?: RequestInit): Promise; declare function dispatchEvent(evt: Event): boolean; declare function addEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; declare function removeEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; type AlgorithmIdentifier = string | Algorithm; type BodyInit = any; type IDBKeyPath = string; type RequestInfo = Request | string; type USVString = string; type IDBValidKey = number | string | Date | IDBArrayKey; type BufferSource = ArrayBuffer | ArrayBufferView; type FormDataEntryValue = string | File; type HeadersInit = Headers | string[][] | { [key: string]: string }; type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique"; type IDBRequestReadyState = "pending" | "done"; type IDBTransactionMode = "readonly" | "readwrite" | "versionchange"; type MediaKeyStatus = "usable" | "expired" | "output-downscaled" | "output-not-allowed" | "status-pending" | "internal-error"; type NotificationDirection = "auto" | "ltr" | "rtl"; type NotificationPermission = "default" | "denied" | "granted"; type PushEncryptionKeyName = "p256dh" | "auth"; type PushPermissionState = "granted" | "denied" | "prompt"; type ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin-only" | "origin-when-cross-origin" | "unsafe-url"; type RequestCache = "default" | "no-store" | "reload" | "no-cache" | "force-cache"; type RequestCredentials = "omit" | "same-origin" | "include"; type RequestDestination = "" | "document" | "sharedworker" | "subresource" | "unknown" | "worker"; type RequestMode = "navigate" | "same-origin" | "no-cors" | "cors"; type RequestRedirect = "follow" | "error" | "manual"; type RequestType = "" | "audio" | "font" | "image" | "script" | "style" | "track" | "video"; type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect"; type ServiceWorkerState = "installing" | "installed" | "activating" | "activated" | "redundant"; type VisibilityState = "hidden" | "visible" | "prerender" | "unloaded"; type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text"; type ClientType = "window" | "worker" | "sharedworker" | "all"; type FrameType = "auxiliary" | "top-level" | "nested" | "none";