/** * Service Worker specific type definitions */ // Extend the global scope for Service Worker context declare const self: ServiceWorkerGlobalScope; // Service Worker event types interface ServiceWorkerGlobalScope extends WorkerGlobalScope { addEventListener(type: 'install', listener: (event: ExtendableEvent) => void): void; addEventListener(type: 'activate', listener: (event: ExtendableEvent) => void): void; addEventListener(type: 'fetch', listener: (event: FetchEvent) => void): void; addEventListener(type: 'message', listener: (event: ExtendableMessageEvent) => void): void; skipWaiting(): Promise; clients: Clients; } // Extend ExtendableEvent to include waitUntil interface ExtendableEvent extends Event { waitUntil(promise: Promise): void; } // Extend FetchEvent interface FetchEvent extends ExtendableEvent { request: Request; clientId: string; handled: Promise; preloadResponse: Promise; respondWith(response: Response | Promise): void; } // Extend ExtendableMessageEvent interface ExtendableMessageEvent extends ExtendableEvent { data: any; origin: string; lastEventId: string; source: Client | ServiceWorker | MessagePort | null; ports: ReadonlyArray; }