///
import { EventEmitter } from 'events';
import { Request } from 'aws-sdk';
import { SWFTask, CodedError } from '../interfaces';
import { Task } from '../tasks/Task';
import { Workflow } from '../entities/Workflow';
export declare abstract class Worker> extends EventEmitter {
identity: string;
workflow: Workflow;
private currentRequest;
private pollingState;
constructor(workflow: Workflow, identity: string);
_start(): void;
_stop(cb: any): any;
loop(): void;
sendRequest(req: Request, cb: {
(err?: CodedError, data?: T);
}): void;
abstract wrapTask(workflow: Workflow, data: T, cb: {
(err: Error | null, task: W | null);
}): any;
abstract buildApiRequest(): Request;
abstract performTask(task: W): any;
abstract handleError(err: Error): boolean;
}