///
import { Tasks } from './Tasks';
import { TaskRunnerRegistry } from './TaskRunnerRegistry';
import { TASK_RUNNER_SPEC } from './Constants';
import { ITaskExectorOptions } from './ITaskExectorOptions';
import { ILoggerApi } from '../../libs/logging/ILoggerApi';
import { TaskRequestFactory } from './worker/TaskRequestFactory';
import { EventEmitter } from 'events';
import { TaskFuture } from './worker/execute/TaskFuture';
import { ITaskRunnerResult } from './ITaskRunnerResult';
import { TaskEvent } from './event/TaskEvent';
export declare class TaskExecutor extends EventEmitter {
private executeable;
private options;
private passedOptions;
private params;
private spec;
private taskNames;
private targetIds;
tasks: Tasks;
taskRunnerRegistry: TaskRunnerRegistry;
requestFactory: TaskRequestFactory;
constructor();
logger: ILoggerApi;
setOptions(options: ITaskExectorOptions): void;
/**
* Executeable
*/
isExecuteable(): boolean;
/**
* Initialize the task executor
*
* @param taskSpec
* @param _argv
*/
create(taskSpec: TASK_RUNNER_SPEC[], param: any, _argv: ITaskExectorOptions): this;
/**
* Tells if the task will be executed locally, can be used after "create" method
*/
isLocally(): boolean;
/**
* Return all options for this task execution
*/
getOptions(): ITaskExectorOptions;
run(asFuture?: boolean): Promise;
/**
* Task will be executed locally
*/
executeLocally(): Promise;
executeOnWorker(asFuture?: boolean): Promise;
register(): Promise;
unregister(): Promise;
}