///
import { Moment } from "moment";
import { IVAPISerializedExecutionTask, IVAPIExecutionTaskConstructorConfig, IVAPIExecutionTaskEmitProps, IVAPIExecutionTaskOnProps } from "./task.types";
import { EventEmitter } from "events";
import { VAPIExecutionError } from "../execution/execution.error";
import { VAPITaskMemory } from "../memory/memory.abstract";
import { VAPITypesConverter } from "../connectors/types-converter/types-converter.abstract";
export declare class VAPIExecutionTask extends EventEmitter {
start: Moment;
end?: Moment;
id: string;
status: any;
params: any;
config: IVAPIExecutionTaskConstructorConfig;
memory: VAPITaskMemory;
converter: VAPITypesConverter;
protected readyPromise?: Promise;
constructor(params: any | IVAPISerializedExecutionTask, config?: IVAPIExecutionTaskConstructorConfig);
protected onCreateNew(params: any, config: IVAPIExecutionTaskConstructorConfig): void;
emit(eventName: '*' | T, actionProps?: IVAPIExecutionTaskEmitProps): boolean;
on(eventName: '*' | T, listener: (args: IVAPIExecutionTaskOnProps) => void): this;
ready(): Promise;
protected load(): Promise;
init(...props: any): Promise;
compile(...props: any): Promise;
execute(...props: any): Promise;
complete(result?: any): Promise;
failed(error: Error | VAPIExecutionError): Promise;
destroy(): Promise;
toJSON(): IVAPISerializedExecutionTask;
protected fromJSON(serialized: IVAPISerializedExecutionTask): void;
}