///
export interface QueueFeeder {
getLength(): number;
handle(x: Feed): Promise;
}
export declare class HandlerQueueStats {
total_events: number;
queued_events: number;
immediately_handled_events: number;
queued_handled_events: number;
rejected_events: number;
handler_set_count: number;
handler_change_count: number;
handler_clear_count: number;
handler_rejections: number;
}
export interface QueueHandler {
clear(): void;
getLength(): number;
setHandler(f: (x: Feed) => Promise): void;
setSyncHandler(f: (x: Feed) => Result): void;
setNextHandler(f: (x: Feed) => Promise): Promise;
setSyncNextHandler(f: (x: Feed) => Result): Promise;
isHandling(): boolean;
stopHandling(): void;
getStats(): HandlerQueueStats;
}
export declare class Queue implements QueueFeeder, QueueHandler {
private queue_;
private handler_;
private rejectFn_;
private stats_;
constructor();
getLength: () => number;
isHandling: () => boolean;
getStats: () => HandlerQueueStats;
handle: (x: Feed) => Promise;
private processQueue_;
clear: () => void;
setHandler: (handler: (x: Feed) => Promise) => void;
setSyncHandler: (handler: (x: Feed) => Result) => void;
stopHandling: () => void;
setNextHandler: (handler: (x: Feed) => Promise) => Promise;
setSyncNextHandler: (handler: (x: Feed) => Result) => Promise;
}