import { Queue } from './queue'; declare class DeferredPromise { readonly promise: Promise; resolve: (value?: T | PromiseLike) => void; reject: (reason?: any) => void; constructor(); } export interface DeferredMessage { timestamp: number; message: M; promise: DeferredPromise; } export declare abstract class PromiseBasedQueue implements Queue { protected readonly queuedMessages: DeferredMessage[]; private timeout; protected constructor(); abstract consume(message: R): boolean; setTimeout(timeout: number): void; cleanPending(timeout: number): void; flush(shutdown?: boolean): void; processQueue(response: R): void; enqueue(message: M): Promise; } export {}; //# sourceMappingURL=promise-queue.d.ts.map