/**
 * Constraint-Aware Workflow Generator
 * Generates executable workflows based on discovered PostgreSQL constraints
 * Part of supa-seed v2.2.0 constraint-aware architecture
 */
import type { createClient } from '@supabase/supabase-js';
import { type ConstraintMetadata, type DependencyGraph } from '../analysis/constraint-discovery-engine';
import { type WorkflowConfiguration, type UserCreationWorkflow } from '../analysis/constraint-aware-executor';
type SupabaseClient = ReturnType<typeof createClient>;
export interface WorkflowGenerationOptions {
    frameworkType?: 'makerkit' | 'nextjs' | 'custom';
    userCreationStrategy: 'comprehensive' | 'minimal' | 'adaptive';
    constraintHandling: 'strict' | 'permissive' | 'auto_fix';
    generateOptionalSteps: boolean;
    includeDependencyCreation: boolean;
    enableAutoFixes: boolean;
}
export interface GeneratedWorkflowMetadata {
    generatedAt: string;
    constraintMetadata: ConstraintMetadata;
    dependencyGraph: DependencyGraph;
    generationOptions: WorkflowGenerationOptions;
    confidence: number;
    warnings: string[];
    recommendations: string[];
}
export interface WorkflowTemplate {
    id: string;
    name: string;
    description: string;
    frameworkType: string;
    steps: WorkflowStepTemplate[];
    conditions: ConstraintConditionTemplate[];
}
export interface WorkflowStepTemplate {
    id: string;
    table: string;
    operation: 'insert' | 'update' | 'validate';
    priority: number;
    fieldMappings: FieldMappingTemplate[];
}
export interface ConstraintConditionTemplate {
    type: 'business_rule' | 'dependency' | 'validation';
    ruleName: string;
    condition: string;
    required: boolean;
}
export interface FieldMappingTemplate {
    fieldName: string;
    sourceType: 'input' | 'generated' | 'dependency';
    required: boolean;
    validator?: string;
}
export declare class WorkflowGenerator {
    private client;
    private constraintEngine;
    private templates;
    constructor(client: SupabaseClient);
    /**
     * Generate a complete workflow configuration from discovered constraints
     */
    generateWorkflowConfiguration(tableNames: string[], options: WorkflowGenerationOptions): Promise<{
        configuration: WorkflowConfiguration;
        metadata: GeneratedWorkflowMetadata;
    }>;
    /**
     * Generate user creation workflow based on constraints
     */
    generateUserCreationWorkflow(constraints: ConstraintMetadata, dependencyGraph: DependencyGraph, options: WorkflowGenerationOptions): Promise<UserCreationWorkflow>;
    /**
     * Generate a workflow step for a specific table
     */
    private generateTableStep;
    /**
     * Generate field mappings for a table
     */
    private generateFieldMappings;
    /**
     * Generate constraint-specific field mapping
     */
    private generateConstraintFieldMapping;
    /**
     * Generate step conditions based on business rules
     */
    private generateStepConditions;
    /**
     * Generate auto-fixes for common constraint violations
     */
    private generateAutoFixes;
    /**
     * Generate validation steps
     */
    private generateValidationSteps;
    /**
     * Load built-in workflow templates
     */
    private loadBuiltInTemplates;
    /**
     * Utility methods
     */
    private inferCreationOrder;
    private isSystemTable;
    private isRequiredTable;
    private extractStepDependencies;
    private calculateGenerationConfidence;
    private addWarningsAndRecommendations;
}
export {};
//# sourceMappingURL=workflow-generator.d.ts.map