import { Database } from "./database"; export interface PersistentQueueOptions { jobIsJson: boolean; cacheJobs: number; } export declare const DEFAULT_PERSISTENT_QUEUE_OPTIONS: PersistentQueueOptions; export declare class QueuedJob { id: number; created: number; job: J; private queue; returnAddress: string | undefined; reply?: Promise | undefined; constructor(id: number, created: number, job: J, queue: PersistentQueue, returnAddress: string | undefined, reply?: Promise | undefined); delete(): void; done(): void; } export interface QueuedQueryJob extends QueuedJob { reply: Promise; } export declare class PersistentQueue { db: Database; private options; private cached; private nextId; private lastFetched; private waiting; currentLatency: number; queueSize: number; private running; private inProgress; constructor(db: Database, options?: Partial); close(): void; get outstandingCount(): number; get queueSizeOnDisk(): number; add(job: J, returnAddress?: string): QueuedJob; _delete(job: QueuedJob, scanForNext?: boolean): void; getNext(): Promise>; jobs(): AsyncIterable>; peekNext(): QueuedJob | undefined; _done(job: QueuedJob): void; private check; }