/**
 * State Machine Loader
 *
 * Loads and validates YAML-based state machine definitions
 */
import { YamlStateMachine, YamlTransition } from './state-machine-types.js';
/**
 * Loads and manages YAML-based state machine definitions
 */
export declare class StateMachineLoader {
    private stateMachine;
    private validPhases;
    /**
     * Get all valid phases from the loaded state machine
     */
    getValidPhases(): string[];
    /**
     * Get the initial state from the loaded state machine
     */
    getInitialState(): string;
    /**
     * Load state machine from YAML file
     *
     * Checks for custom state machine file in project directory first,
     * then falls back to waterfall workflow as default
     */
    loadStateMachine(projectPath: string): YamlStateMachine;
    /**
     * Resolve workflow path using similar strategy as TemplateManager
     */
    private resolveWorkflowPath;
    loadFromFile(filePath: string): YamlStateMachine;
    /**
     * Validate the state machine structure and references
     */
    private validateStateMachine;
    /**
     * Get transition instructions for a specific state change
     */
    getTransitionInstructions(fromState: string, toState: string, trigger?: string): {
        instructions: string;
        transitionReason: string;
        isModeled: boolean;
    };
    /**
     * Get all possible transitions from a given state
     */
    getPossibleTransitions(fromState: string): YamlTransition[];
    /**
     * Check if a transition is modeled (shown in state diagram)
     */
    isModeledTransition(fromState: string, toState: string): boolean;
    /**
     * Check if a phase is valid in the current state machine
     */
    isValidPhase(phase: string): boolean;
    /**
     * Get phase-specific instructions for continuing work in current phase
     */
    getContinuePhaseInstructions(phase: string): string;
}
