/**
 * Instruction Generator
 *
 * Creates phase-specific guidance for the LLM based on current conversation state.
 * Customizes instructions based on project context and development phase.
 * Supports custom state machine definitions for dynamic instruction generation.
 * Handles variable substitution for project artifact references.
 */
import type { ConversationContext } from './types.js';
import { PlanManager } from './plan-manager.js';
import type { YamlStateMachine } from './state-machine-types.js';
export interface InstructionContext {
    phase: string;
    conversationContext: ConversationContext;
    transitionReason: string;
    isModeled: boolean;
    planFileExists: boolean;
}
export interface GeneratedInstructions {
    instructions: string;
    planFileGuidance: string;
    metadata: {
        phase: string;
        planFilePath: string;
        transitionReason: string;
        isModeled: boolean;
    };
}
export declare class InstructionGenerator {
    private planManager;
    private projectDocsManager;
    private stateMachine;
    constructor(planManager: PlanManager);
    /**
     * Set the state machine definition for dynamic instruction generation
     */
    setStateMachine(stateMachine: YamlStateMachine): void;
    /**
     * Generate comprehensive instructions for the LLM
     */
    generateInstructions(baseInstructions: string, context: InstructionContext): Promise<GeneratedInstructions>;
    /**
     * Apply variable substitution to instructions
     * Replaces project artifact variables with actual file paths
     */
    private applyVariableSubstitution;
    /**
     * Escape special regex characters in variable names
     */
    private escapeRegExp;
    /**
     * Enhance base instructions with context-specific information
     */
    private enhanceInstructions;
    /**
     * Capitalize phase name for display
     */
    private capitalizePhase;
}
