/**
 * v2.2.0 Configuration Migrator
 * Upgrades v2.1.0 schema-first configurations to v2.2.0 constraint-aware architecture
 * Part of supa-seed v2.2.0 constraint-aware architecture
 */
import type { createClient } from '@supabase/supabase-js';
import { type ModernConfig, type MigrationResult } from './config-migrator';
import { type ConstraintMetadata } from '../features/analysis/constraint-discovery-engine';
import { type WorkflowGenerationOptions } from '../features/generation/workflow-generator';
import { type WorkflowConfiguration } from '../features/analysis/constraint-aware-executor';
type SupabaseClient = ReturnType<typeof createClient>;
export interface V2_2_0_Config extends Omit<ModernConfig, 'version'> {
    version: '2.2.0';
    strategy: 'constraint-aware' | 'schema-first' | 'legacy';
    seeding: ModernConfig['seeding'] & {
        enableDeepConstraintDiscovery: boolean;
        enableBusinessLogicParsing: boolean;
        enableWorkflowGeneration: boolean;
    };
    schema: ModernConfig['schema'] & {
        constraints: ModernConfig['schema']['constraints'] & {
            enableDeepDiscovery: boolean;
            parseTriggerFunctions: boolean;
            buildDependencyGraph: boolean;
            preValidateOperations: boolean;
            cacheConstraintMetadata?: boolean;
            constraintDiscoveryTimeout?: number;
        };
    };
    execution: ModernConfig['execution'] & {
        constraintValidationStrategy: 'pre_execution' | 'post_execution' | 'both';
        errorHandlingStrategy: 'fail_fast' | 'graceful_degradation' | 'best_effort';
        autoFixStrategy: 'aggressive' | 'conservative' | 'disabled';
        workflowExecutionMode: 'constraint_aware' | 'schema_first' | 'legacy';
        enableStepValidation?: boolean;
        enableAutoRecovery?: boolean;
    };
    workflows?: WorkflowConfiguration['workflows'];
    discoveredConstraints?: ConstraintMetadata;
    compatibility: ModernConfig['compatibility'] & {
        supportSchemaFirstMode: boolean;
        enableV2_1_0_Fallback: boolean;
        gracefulDegradationToV2_1_0?: boolean;
    };
    testing?: {
        enableConstraintTesting: boolean;
        validateDiscoveredRules: boolean;
        testAutoFixes: boolean;
        constraintViolationSimulation: boolean;
        workflowValidationTests: boolean;
    };
    performance?: {
        constraintDiscoveryCache: boolean;
        businessRuleParsingTimeout: number;
        workflowExecutionTimeout: number;
        enableExecutionMetrics: boolean;
        logConstraintViolations: boolean;
        logAutoFixes: boolean;
    };
}
export interface V2_2_0_MigrationOptions {
    enableConstraintDiscovery: boolean;
    generateWorkflows: boolean;
    enableAutoFixes: boolean;
    workflowGenerationOptions?: WorkflowGenerationOptions;
    constraintDiscoveryTimeout?: number;
    cacheDiscoveredConstraints?: boolean;
    maintainV2_1_0_Compatibility: boolean;
    enableGracefulDegradation: boolean;
    enableTestingFeatures?: boolean;
    validateConstraintsAfterMigration?: boolean;
}
export interface V2_2_0_MigrationResult extends MigrationResult {
    v2_2_0_Config: V2_2_0_Config;
    discoveredConstraints?: ConstraintMetadata;
    generatedWorkflows?: WorkflowConfiguration['workflows'];
    constraintDiscoveryReport: {
        success: boolean;
        rulesFound: number;
        dependenciesFound: number;
        confidence: number;
        warnings: string[];
    };
    workflowGenerationReport?: {
        success: boolean;
        workflowsGenerated: number;
        autoFixesGenerated: number;
        confidence: number;
    };
}
export declare class V2_2_0_Migrator {
    private client;
    private legacyMigrator;
    private constraintEngine;
    private workflowGenerator;
    constructor(client: SupabaseClient);
    /**
     * Migrate v2.1.0 configuration to v2.2.0 constraint-aware architecture
     */
    migrateToV2_2_0(v2_1_0_Config: ModernConfig, options: V2_2_0_MigrationOptions): Promise<V2_2_0_MigrationResult>;
    /**
     * Create base v2.2.0 configuration from v2.1.0 config
     */
    private createBaseV2_2_0_Config;
    /**
     * Perform constraint discovery and update configuration
     */
    private performConstraintDiscovery;
    /**
     * Generate workflows based on discovered constraints
     */
    private generateWorkflows;
    /**
     * Apply v2.2.0 specific enhancements
     */
    private applyV2_2_0_Enhancements;
    /**
     * Validate migration result
     */
    private validateMigrationResult;
    /**
     * Generate migration summary and recommendations
     */
    private generateMigrationSummary;
    /**
     * Utility methods
     */
    private extractTableNamesFromConfig;
    private countAutoFixes;
    /**
     * Quick migration helper for common use cases
     */
    static quickMigrateToV2_2_0(client: SupabaseClient, v2_1_0_ConfigPath: string, outputPath?: string): Promise<V2_2_0_MigrationResult>;
}
export {};
//# sourceMappingURL=v2-2-0-migrator.d.ts.map