import { PersistentQueue, PersistentQueueOptions, QueuedJob, QueuedQueryJob } from "./persistent_queue"; import { TimedJob, Timer, TimerOptions } from "./timer"; import { delay, FakeWorkerPool, WorkerPool, WorkerPoolOptions, WorkerStatus, WORKER_POOL_ERROR_DESCRIPTIONS } from "./worker_pool"; import { Worker, WorkerPortal } from "./worker_types"; export { delay, PersistentQueue, PersistentQueueOptions, QueuedJob, TimedJob, Timer, TimerOptions, FakeWorkerPool, Worker, WorkerPool, WorkerPoolOptions, WorkerPortal, WORKER_POOL_ERROR_DESCRIPTIONS, }; export interface NightCoralStats { timerCount: number; idleWorkerCount: number; currentTimerLatency: number; } export interface NightCoralOptions extends PersistentQueueOptions, TimerOptions, WorkerPoolOptions { databaseFilename: string; fakeWorker?: (job: J, returnAddress?: string) => Promise; fakePortal?: WorkerPortal; } export declare class NightCoral { private db; private options; timer: Timer; queue: PersistentQueue; workerPool: WorkerPool; fakePortal?: WorkerPortal; constructor(options?: Partial>); stop(): Promise; launch(workerCodePath: string, count: number): Promise; idle(): Promise; add(job: J): QueuedJob; addQuery(job: J): QueuedQueryJob; monitor(frequency: number, timeout: number): AsyncIterable[]>; addTimerAt(expires: number, job: J): TimedJob; addTimer(timeout: number, job: J): TimedJob; postReply(returnAddress: string, reply: J): void; }