/**
 * Workflow Manager
 *
 * Manages multiple predefined workflows and provides workflow discovery and selection
 */
import { YamlStateMachine } from './state-machine-types.js';
export interface WorkflowInfo {
    name: string;
    displayName: string;
    description: string;
    initialState: string;
    phases: string[];
    metadata?: {
        domain?: string;
        complexity?: 'low' | 'medium' | 'high';
        bestFor?: string[];
        useCases?: string[];
        examples?: string[];
    };
}
/**
 * Manages predefined workflows and provides workflow discovery
 */
export declare class WorkflowManager {
    private predefinedWorkflows;
    private projectWorkflows;
    private workflowInfos;
    private stateMachineLoader;
    private lastProjectPath;
    private enabledDomains;
    constructor();
    /**
     * Parse enabled domains from environment variable
     */
    private parseEnabledDomains;
    /**
     * Load project-specific workflows from .vibe/workflows/
     */
    loadProjectWorkflows(projectPath: string): void;
    /**
     * Migrate legacy workflow.yaml to new workflows directory
     */
    private migrateLegacyWorkflow;
    /**
     * Get all available workflows regardless of domain filtering
     */
    getAllAvailableWorkflows(): WorkflowInfo[];
    getAvailableWorkflows(): WorkflowInfo[];
    /**
     * Get available workflows for a specific project
     * Applies configuration filtering and loads project-specific workflows
     */
    getAvailableWorkflowsForProject(projectPath: string): WorkflowInfo[];
    /**
     * Get workflow information by name
     */
    getWorkflowInfo(name: string): WorkflowInfo | undefined;
    /**
     * Get a specific workflow by name (checks both predefined and project workflows)
     */
    getWorkflow(name: string): YamlStateMachine | undefined;
    /**
     * Check if a workflow name is a predefined workflow
     */
    isPredefinedWorkflow(name: string): boolean;
    /**
     * Get workflow names as enum values for tool schema
     * Includes both predefined and project workflows
     */
    getWorkflowNames(): string[];
    /**
     * Load a workflow (predefined or custom) for a project
     * FIXED: Now respects the workflow parameter correctly
     */
    loadWorkflowForProject(projectPath: string, workflowName?: string): YamlStateMachine;
    /**
     * Find the workflows directory using multiple strategies
     * This handles both development and npm package deployment scenarios
     */
    private findWorkflowsDirectory;
    /**
     * Load all predefined workflows from resources/workflows directory
     */
    private loadPredefinedWorkflows;
    /**
     * Validate a workflow name
     */
    validateWorkflowName(workflowName: string, projectPath: string): boolean;
}
