import { ReactorComposite, ReactorCompositeOpt } from '../epic'; import { ActionFunctions } from '../control'; import { Broker, BrokerInput, BrokerEvent, ForkWorkerInput, ForkWorkerOutput, WorkerControl } from './types'; import { applyScheduler } from './worker-scheduler'; export * from './types'; /** Broker manages worker threads, create message channels between child worker threads and main thread, transmits actions */ export declare function createBroker, O extends ActionFunctions = Record, LI extends ReadonlyArray = readonly [], LO extends ReadonlyArray = readonly []>(workerController: ReactorComposite, opts?: ReactorCompositeOpt> & ForkWorkerOutput>): Broker>; type ScheduleOptions = typeof applyScheduler extends (c: any, o: infer O) => any ? O : unknown; export declare function setupForMainWorker, O extends ActionFunctions = Record, LI extends ReadonlyArray = readonly [], LO extends ReadonlyArray = readonly []>(workerContoller: WorkerControl, opts: ScheduleOptions & ReactorCompositeOpt> & ForkWorkerInput & ForkWorkerOutput>): Broker>;