/** * Workers — kontrakty dla offload computed / agregacji do Web Worker i dla * rejestracji Service Worker. * * Framework nie narzuca implementacji — projekt może podpiąć standardowego * Web Worker, ComLink, albo zostać na main thread. Runtime dostarcza jedynie * domyślny adapter bazujący na Worker + postMessage (patrz * @echelon-framework/runtime). */ import type { Observable } from 'rxjs'; /** * Kontrakt dla poola workerów wykonującego pure functions / agregacje. Runtime * może wybrać offload per @Function.workerSafe flag (zobacz PureFunction). */ export interface WorkerPool { /** * Wykonaj nazwaną funkcję w worker threadzie. `name` to zarejestrowany * w workerze klucz funkcji (sieka się z PureFunction.name). Zwraca wynik * albo rzuca `WorkerTaskError` jeśli worker zgłosił błąd / timeout. */ execute(name: string, input: unknown, options?: WorkerExecuteOptions): Promise; /** Rozmiar puli (readonly). */ readonly size: number; /** Zamknij wszystkie workery — wywołanie przy teardown aplikacji. */ terminate(): Promise; } export interface WorkerExecuteOptions { readonly timeoutMs?: number; readonly transferList?: readonly Transferable[]; } export declare class WorkerTaskError extends Error { readonly taskName: string; readonly cause?: unknown | undefined; constructor(message: string, taskName: string, cause?: unknown | undefined); } export declare const WORKER_POOL: import("../index.js").EchelonToken; /** * Kontrakt dla Service Worker — rejestracja, informacje o bieżącym stanie, * event stream (install/activate/fetch/update). Implementacja jest * przeglądarkowo-specyficzna; framework tylko abstrahuje nad Navigator. */ export interface ServiceWorkerBridge { register(scriptUrl: string, options?: ServiceWorkerRegistrationConfig): Promise; readonly events$: Observable; } export interface ServiceWorkerRegistrationConfig { readonly scope?: string; readonly updateViaCache?: 'all' | 'imports' | 'none'; /** Jeśli true, po wykryciu nowej wersji automatycznie aktywuj przez skipWaiting. */ readonly autoActivate?: boolean; } export interface ServiceWorkerHandle { readonly scope: string; update(): Promise; unregister(): Promise; } export type ServiceWorkerBridgeEvent = { readonly kind: 'registered'; readonly scope: string; } | { readonly kind: 'updated'; readonly scope: string; } | { readonly kind: 'controllerchange'; } | { readonly kind: 'error'; readonly message: string; readonly cause?: unknown; } | { readonly kind: 'message'; readonly data: unknown; }; export declare const SERVICE_WORKER_BRIDGE: import("../index.js").EchelonToken; //# sourceMappingURL=index.d.ts.map