/** * Опции регистрации воркера. */ export interface WorkerOptions { /** Уникальное имя. */ name: string; /** Фабрика (dynamic import) или уже созданный Worker. */ src: () => Promise<{ default: Worker; }> | Worker; /** Начальное сообщение (любой JSON), отправится сразу после подключения. */ initMessage?: unknown; /** * Фильтр обычной рассылки: Worker получает только перечисленные ports. * Если список не передан, Worker получает все ports. */ ports?: readonly string[]; } /** * Регистрирует и запускает воркер. * Сообщения `{ port, payload }` от Worker передаются подписчикам в основном потоке. */ export declare function registerWorker(opts: WorkerOptions): Promise; /** * Отправляет произвольное сообщение конкретному воркеру. */ export declare const sendToWorker: (name: string, data: unknown) => void; /** * Завершает работу воркера и удаляет из реестра. */ export declare const terminateWorker: (name: string) => void; export type Msg = { port: string; payload?: unknown; }; /** * Создать router для воркера. * handlers: { 'myPort': fn } * postPort — типобезопасный helper для ответов наружу. */ export declare function createWorker(handlers: Record void | Promise>): { postPort: (port: K, payload: Extract['payload']) => void; };