/// import { TransferListItem } from 'worker_threads'; import { IAbortSignalFast } from '@flemist/abort-controller-fast'; export declare type PromiseOrValue = Promise | T; export declare type TaskFunc = (request: TRequest, abortSignal?: IAbortSignalFast, callback?: (data: TCallbackData) => void) => PromiseOrValue; export declare type WorkerData = { data?: TData; transferList?: ReadonlyArray; }; export declare type WorkerTaskFunc = TaskFunc, WorkerData, WorkerData>; export declare type WorkerTaskFuncResult = PromiseOrValue>; export declare type IUnsubscribe = () => void; export declare type IUnsubscribeAsync = (abortSignal: IAbortSignalFast) => PromiseOrValue; export declare type Callback = (data: TData, error?: TError) => void; export interface IEventEmitter { emit(event: TEmitEvent): any; } export interface IEventSubscriber { subscribe(callback: (event: TSubscribeEvent) => void): IUnsubscribe; } export interface IEventBus extends IEventEmitter, IEventSubscriber { } export declare type WorkerCallback = Callback>; export declare type WorkerEvent = { data?: WorkerData; error?: Error; route?: string[]; }; export interface IWorkerEventEmitter extends IEventEmitter> { } export interface IWorkerEventSubscriber extends IEventSubscriber> { } export interface IWorkerEventBus extends IWorkerEventEmitter, IWorkerEventSubscriber { } declare type WorkerFuncPromise = (data: WorkerData, abortSignal?: IAbortSignalFast) => PromiseOrValue>; declare type WorkerFuncSubscribe = (data: WorkerData, abortSignal: IAbortSignalFast, callback: WorkerCallback) => PromiseOrValue; export declare type WorkerFunc = WorkerFuncPromise | WorkerFuncSubscribe; export {};