import { EventEmitter } from 'events';
import { Task, Workflow, WorkflowExecution, TaskExecution, OrchestrationConfig } from './types.js';
export declare class TaskOrchestrator extends EventEmitter {
    private config;
    private runningTasks;
    private taskQueue;
    private workflows;
    private executions;
    constructor(config?: Partial<OrchestrationConfig>);
    createWorkflow(workflow: Omit<Workflow, 'id' | 'createdAt' | 'updatedAt'>): Promise<Workflow>;
    executeWorkflow(workflowId: string, variables?: Record<string, any>): Promise<WorkflowExecution>;
    executeTask(task: Task, variables?: Record<string, any>): Promise<TaskExecution>;
    cancelExecution(executionId: string): Promise<void>;
    getWorkflowStatus(workflowId: string): Workflow | undefined;
    getExecutionStatus(executionId: string): WorkflowExecution | undefined;
    listWorkflows(): Workflow[];
    listExecutions(workflowId?: string): WorkflowExecution[];
    private runWorkflow;
    private executeCommand;
    private executeFunction;
    private waitForManualCompletion;
    private executeParallelTasks;
    private executeSequentialTasks;
    private validateWorkflow;
    private buildDependencyGraph;
    private calculateRetryDelay;
    private interpolateVariables;
    private getNestedValue;
    completeManualTask(taskId: string, output?: any, error?: string): void;
}
//# sourceMappingURL=orchestrator.d.ts.map