/**
 * Smart Default Completion Conditions
 * Project-type-aware defaults for auto mode quality gates
 *
 * Each project type has opinionated mandatory conditions that cannot be removed
 */
import { CompletionCondition } from './types.js';
import { ProjectType } from './project-detector.js';
/**
 * Mandatory completion conditions by project type
 * These CANNOT be removed by users (only thresholds can be adjusted)
 */
export declare const MANDATORY_CONDITIONS: Record<ProjectType, CompletionCondition[]>;
/**
 * Get default completion conditions for a project type
 *
 * @param projectType - Detected project type
 * @param userOverrides - Optional user-specified conditions (will be merged)
 * @returns Array of completion conditions with mandatory ones preserved
 */
export declare function getDefaultConditions(projectType: ProjectType, userOverrides?: CompletionCondition[]): CompletionCondition[];
/**
 * Merge user conditions with mandatory defaults
 * Rules:
 * - User can add new conditions
 * - User can INCREASE thresholds above mandatory minimum
 * - User CANNOT DECREASE thresholds below mandatory minimum
 * - User CANNOT remove mandatory conditions
 * - User CANNOT change mandatory=true to mandatory=false
 *
 * @param mandatory - Mandatory default conditions
 * @param user - User-specified conditions
 * @returns Merged conditions with mandatory ones preserved
 */
export declare function mergeConditions(mandatory: CompletionCondition[], user: CompletionCondition[]): CompletionCondition[];
/**
 * Validate user-specified conditions and return warnings
 * Used for CLI validation and help messages
 *
 * @param projectType - Detected project type
 * @param user - User-specified conditions
 * @returns Validation result with warnings
 */
export declare function validateUserConditions(projectType: ProjectType, user: CompletionCondition[]): {
    valid: boolean;
    warnings: string[];
};
/**
 * Generate human-readable description of conditions
 * Used for CLI output when auto mode starts
 *
 * @param conditions - Completion conditions
 * @returns Array of human-readable descriptions (one per condition)
 */
export declare function describeConditions(conditions: CompletionCondition[]): string[];
//# sourceMappingURL=default-conditions.d.ts.map