import { WorkflowContext } from "./nextStepsSuggester";
export interface WorkflowStep {
    id: string;
    name: string;
    description: string;
    command: string;
    dependencies: string[];
    autoContinue: boolean;
    estimatedTime: number;
    estimatedDuration?: number;
    requiredContext?: Partial<WorkflowContext>;
    optional?: boolean;
}
export interface WorkflowDefinition {
    id: string;
    name: string;
    description: string;
    steps: WorkflowStep[];
    estimatedTotalTime: number;
    category: "setup" | "development" | "deployment" | "maintenance";
}
export interface WorkflowProgress {
    workflowId: string;
    currentStepId?: string;
    completedSteps: string[];
    startedAt: Date;
    estimatedCompletion?: Date;
    context: WorkflowContext;
    completed?: boolean;
}
export declare class WorkflowEngine {
    private static workflows;
    private static activeWorkflows;
    private static WORKFLOW_STATE_FILE;
    /**
     * Register a workflow definition
     */
    static registerWorkflow(workflow: WorkflowDefinition): void;
    /**
     * Get all available workflows
     */
    static getWorkflows(): WorkflowDefinition[];
    /**
     * Get a specific workflow by ID
     */
    static getWorkflow(workflowId: string): WorkflowDefinition | undefined;
    /**
     * Start a workflow for a project
     */
    static startWorkflow(workflowId: string, projectRoot?: string, autoContinue?: boolean): Promise<WorkflowProgress>;
    /**
     * Execute the next step in a workflow
     */
    private static executeNextStep;
    /**
     * Continue an active workflow
     */
    static continueWorkflow(projectRoot?: string): Promise<void>;
    /**
     * Get the next step to execute
     */
    private static getNextStep;
    /**
     * Execute a command
     */
    private static executeCommand;
    /**
     * Complete a workflow
     */
    private static completeWorkflow;
    /**
     * Find active workflow for a project
     */
    private static findActiveWorkflow;
    /**
     * Get workflow status
     */
    static getWorkflowStatus(projectRoot?: string): WorkflowProgress | null;
    /**
     * Stop an active workflow
     */
    static stopWorkflow(projectRoot?: string): Promise<void>;
    /**
     * Save workflow state to disk
     */
    private static saveWorkflowState;
    /**
     * Load workflow state from disk
     */
    private static loadWorkflowState;
    /**
     * Clear saved workflow state
     */
    private static clearWorkflowState;
}
//# sourceMappingURL=workflowEngine.d.ts.map