/**
 * Plan Approval for Auto Mode
 *
 * Displays increment plan and handles user approval/modification before execution.
 *
 * @module plan-approval
 */
import type { PlanningResult } from './increment-planner.js';
export interface ApprovalConfig {
    /** Skip approval prompt (--yes flag) */
    autoApprove?: boolean;
    /** Project root path */
    projectPath: string;
    /** Interactive mode (default: true) */
    interactive?: boolean;
}
export interface ApprovalResult {
    approved: boolean;
    modifiedPlan?: PlanningResult;
    skippedIncrements?: string[];
    reason?: string;
}
export interface PlanDisplayOptions {
    /** Show detailed feature breakdown */
    showDetails?: boolean;
    /** Show dependency graph */
    showDependencies?: boolean;
    /** Output format */
    format?: 'text' | 'markdown' | 'json';
}
/**
 * Format increment plan for display
 *
 * @param plan - Planning result to display
 * @param options - Display options
 * @returns Formatted string
 *
 * @example
 * ```typescript
 * const output = formatPlanDisplay(plan, { showDetails: true });
 * console.log(output);
 * ```
 */
export declare function formatPlanDisplay(plan: PlanningResult, options?: PlanDisplayOptions): string;
/**
 * Log approved plan to file
 *
 * @param plan - Approved plan
 * @param projectPath - Project root path
 */
export declare function logApprovedPlan(plan: PlanningResult, projectPath: string): void;
/**
 * Generate approval prompt text
 *
 * @param plan - Planning result
 * @returns Prompt text for user approval
 */
export declare function generateApprovalPrompt(plan: PlanningResult): string;
/**
 * Validate plan is executable
 *
 * @param plan - Planning result to validate
 * @returns Validation result with any issues
 */
export declare function validatePlan(plan: PlanningResult): {
    valid: boolean;
    issues: string[];
};
/**
 * Save plan to state for later execution
 *
 * @param plan - Planning result to save
 * @param projectPath - Project root path
 */
export declare function savePlanToState(plan: PlanningResult, projectPath: string): void;
/**
 * Load saved plan from state
 *
 * @param projectPath - Project root path
 * @returns Saved plan or null if none exists
 */
export declare function loadPlanFromState(projectPath: string): {
    plan: PlanningResult;
    savedAt: string;
} | null;
/**
 * Clear saved plan from state
 *
 * @param projectPath - Project root path
 */
export declare function clearPlanFromState(projectPath: string): void;
/**
 * Process user's plan modification request
 *
 * @param plan - Original plan
 * @param modification - User's modification description
 * @returns Modified plan
 */
export declare function applyPlanModification(plan: PlanningResult, modification: {
    type: 'merge' | 'split' | 'remove' | 'reorder';
    incrementIds: string[];
    newName?: string;
}): PlanningResult;
//# sourceMappingURL=plan-approval.d.ts.map