/**
 * State Machine Definition for Vibe Feature MCP Server
 *
 * This module defines the development workflow state machine, including:
 * - Development phases (states)
 * - Transition triggers and conditions
 * - Phase-specific instructions for LLM guidance
 * - Transition-specific prompts for contextual guidance
 */
export type DevelopmentPhase = 'idle' | 'requirements' | 'design' | 'implementation' | 'qa' | 'testing' | 'complete';
export type TransitionTrigger = 'new_feature_request' | 'refine_requirements' | 'requirements_complete' | 'abandon_feature' | 'refine_design' | 'requirements_unclear' | 'design_complete' | 'refine_implementation' | 'design_issues' | 'implementation_complete' | 'refine_qa' | 'implementation_issues' | 'qa_complete' | 'refine_testing' | 'qa_issues' | 'testing_complete' | 'feature_delivered' | 'direct_transition';
export interface StateTransition {
    from: DevelopmentPhase;
    to: DevelopmentPhase;
    trigger: TransitionTrigger;
    isModeled: boolean;
    instructions: string;
    transitionReason: string;
}
/**
 * Complete state transition table
 *
 * This table defines all possible transitions between development phases.
 * - Modeled transitions: Shown in the state diagram, get contextual guidance
 * - Direct transitions: Not shown in diagram, get general phase instructions
 */
export declare const STATE_TRANSITIONS: StateTransition[];
/**
 * Direct transition instructions for non-modeled transitions
 * These are used when users jump directly to any phase using proceed_to_phase
 */
export declare const DIRECT_PHASE_INSTRUCTIONS: Record<DevelopmentPhase, string>;
/**
 * Get transition instructions for a specific state change
 */
export declare function getTransitionInstructions(fromState: DevelopmentPhase, toState: DevelopmentPhase, trigger?: TransitionTrigger): {
    instructions: string;
    transitionReason: string;
    isModeled: boolean;
};
/**
 * Get all possible transitions from a given state
 */
export declare function getPossibleTransitions(fromState: DevelopmentPhase): StateTransition[];
/**
 * Check if a transition is modeled (shown in state diagram)
 */
export declare function isModeledTransition(fromState: DevelopmentPhase, toState: DevelopmentPhase): boolean;
/**
 * Get phase-specific instructions for continuing work in current phase
 */
export declare function getContinuePhaseInstructions(phase: DevelopmentPhase): string;
