import { DiagnosticsLogger } from '@ceramicnetwork/common';
export declare class Deferred<T = void> implements PromiseLike<T> {
    readonly resolve: (t: T) => void;
    readonly reject: (e: Error) => void;
    readonly then: Promise<T>['then'];
    readonly catch: Promise<T>['catch'];
    isResolved: boolean;
    constructor();
}
export declare class ProcessingLoop<T> {
    #private;
    private readonly source;
    private readonly handleValue;
    constructor(logger: DiagnosticsLogger, concurrencyLimit: number, source: ProcessingLoop<T>['source'], onValue: ProcessingLoop<T>['handleValue'], toUniqueString?: (value: T) => string);
    start(): Promise<void>;
    stop(): Promise<void>;
}
//# sourceMappingURL=processing-loop.d.ts.map