import EventEmitter from "events";
import { RemoteCallDescriptor } from "@selfage/service_descriptor";
export interface ProcessTaskHandlerWrapper {
    on(event: "done", callbackFn: (error?: Error) => void): this;
}
export declare class ProcessTaskHandlerWrapper extends EventEmitter {
    private descriptor;
    private initialBackoffTimeMs;
    private maxBackkoffTimeMs;
    static create(descriptor: RemoteCallDescriptor, initialBackoffTimeMs: number, maxBackkoffTimeMs: number): ProcessTaskHandlerWrapper;
    constructor(descriptor: RemoteCallDescriptor, initialBackoffTimeMs: number, maxBackkoffTimeMs: number);
    getBackoffTime(retryCount: number): number;
    wrap(loggingPrefix: string, claimTaskFn: () => Promise<void>, processFn: () => Promise<void>): Promise<void>;
    private processAndCatchError;
}
