// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. /// /// /// /// /// interface WorkerGlobalScopeEventMap { "error": ErrorEvent; } declare class WorkerGlobalScope extends EventTarget { readonly location: WorkerLocation; readonly navigator: WorkerNavigator; onerror: ((this: WorkerGlobalScope, ev: ErrorEvent) => any) | null; readonly self: WorkerGlobalScope & typeof globalThis; 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; Deno: typeof Deno; } declare class WorkerNavigator { constructor(); readonly gpu: GPU; } declare var navigator: WorkerNavigator; interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap { "message": MessageEvent; "messageerror": MessageEvent; } declare class DedicatedWorkerGlobalScope extends WorkerGlobalScope { readonly name: string; onmessage: | ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null; onmessageerror: | ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null; close(): void; postMessage(message: 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 name: string; declare var onmessage: | ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null; declare var onmessageerror: | ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null; declare function close(): void; declare function postMessage(message: any): void; declare var navigator: WorkerNavigator; declare var onerror: | ((this: DedicatedWorkerGlobalScope, ev: ErrorEvent) => any) | null; declare var self: WorkerGlobalScope & typeof globalThis; declare function addEventListener< K extends keyof DedicatedWorkerGlobalScopeEventMap, >( 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< K extends keyof DedicatedWorkerGlobalScopeEventMap, >( type: K, listener: ( this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K], ) => any, options?: boolean | EventListenerOptions, ): void; declare function removeEventListener( type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions, ): void; // TODO(nayeemrmn): Move this to `extensions/web` where its implementation is. // The types there must first be split into window, worker and global types. /** The absolute location of the script executed by the Worker. Such an object * is initialized for each worker and is available via the * WorkerGlobalScope.location property obtained by calling self.location. */ declare class WorkerLocation { constructor(); readonly hash: string; readonly host: string; readonly hostname: string; readonly href: string; toString(): string; readonly origin: string; readonly pathname: string; readonly port: string; readonly protocol: string; readonly search: string; } // TODO(nayeemrmn): Move this to `extensions/web` where its implementation is. // The types there must first be split into window, worker and global types. declare var location: WorkerLocation;