/**
 * MakerKit-Specific Constraint Handlers for Epic 1: Universal MakerKit Core System
 * Advanced constraint resolution strategies for complex MakerKit relationship patterns
 * Part of Task 1.5.2: Create MakerKit-specific constraint handlers
 */
import { ConstraintHandler, ConstraintHandlingResult, CheckConstraint, ForeignKeyConstraint, ConstraintType } from '../features/analysis/constraint-types';
/**
 * Advanced MakerKit Cross-Table Constraint Handler
 * Handles complex multi-table relationship constraints
 */
export declare class MakerKitCrossTableConstraintHandler implements ConstraintHandler {
    id: string;
    type: ConstraintType;
    priority: number;
    description: string;
    canHandle(constraint: CheckConstraint, data: any): boolean;
    handle(constraint: CheckConstraint, data: any): ConstraintHandlingResult;
    private isAccountSubscriptionConstraint;
    private isOrganizationMemberConstraint;
    private isUserProfileConstraint;
    private handleAccountSubscriptionDependency;
    private handleOrganizationMemberCascade;
    private handleUserProfileConsistency;
}
/**
 * MakerKit Conditional Foreign Key Handler
 * Handles nullable foreign keys with business logic conditions
 */
export declare class MakerKitConditionalForeignKeyHandler implements ConstraintHandler {
    id: string;
    type: ConstraintType;
    priority: number;
    description: string;
    canHandle(constraint: ForeignKeyConstraint, data: any): boolean;
    handle(constraint: ForeignKeyConstraint, data: any): ConstraintHandlingResult;
    private isConditionalForeignKey;
    private isOrganizationForeignKey;
    private isHierarchicalForeignKey;
    private isSubscriptionForeignKey;
    private handleOrganizationForeignKey;
    private handleHierarchicalForeignKey;
    private handleSubscriptionForeignKey;
    private generateOrganizationSlug;
}
/**
 * MakerKit Hierarchical Constraint Handler
 * Handles parent-child relationship constraints and circular dependency prevention
 */
export declare class MakerKitHierarchicalConstraintHandler implements ConstraintHandler {
    id: string;
    type: ConstraintType;
    priority: number;
    description: string;
    canHandle(constraint: CheckConstraint, data: any): boolean;
    handle(constraint: CheckConstraint, data: any): ConstraintHandlingResult;
    private isCircularReference;
    private isDeepHierarchy;
    private isOrphanedRecord;
    private handleCircularReference;
    private handleDeepHierarchy;
    private handleOrphanedRecord;
}
/**
 * MakerKit Business Rule Constraint Handler
 * Handles complex business logic constraints that span multiple conditions
 */
export declare class MakerKitBusinessRuleConstraintHandler implements ConstraintHandler {
    id: string;
    type: ConstraintType;
    priority: number;
    description: string;
    canHandle(constraint: CheckConstraint, data: any): boolean;
    handle(constraint: CheckConstraint, data: any): ConstraintHandlingResult;
    private isComplexBusinessRule;
    private isSubscriptionBillingRule;
    private isOrganizationMembershipRule;
    private isUserPermissionRule;
    private handleSubscriptionBillingRule;
    private handleOrganizationMembershipRule;
    private handleUserPermissionRule;
}
/**
 * MakerKit Cascade Constraint Handler
 * Handles cascade operations and dependent data creation/updates
 */
export declare class MakerKitCascadeConstraintHandler implements ConstraintHandler {
    id: string;
    type: ConstraintType;
    priority: number;
    description: string;
    canHandle(constraint: ForeignKeyConstraint, data: any): boolean;
    handle(constraint: ForeignKeyConstraint, data: any): ConstraintHandlingResult;
    private isOrganizationCascade;
    private isUserCascade;
    private isSubscriptionCascade;
    private handleOrganizationCascade;
    private handleUserCascade;
    private handleSubscriptionCascade;
}
/**
 * Registry of all MakerKit-specific constraint handlers
 */
export declare const MAKERKIT_CONSTRAINT_HANDLERS: (typeof MakerKitCrossTableConstraintHandler | typeof MakerKitConditionalForeignKeyHandler | typeof MakerKitHierarchicalConstraintHandler | typeof MakerKitBusinessRuleConstraintHandler | typeof MakerKitCascadeConstraintHandler)[];
/**
 * Initialize and register all MakerKit-specific constraint handlers
 */
export declare function registerMakerKitConstraintHandlers(handlers: any): void;
//# sourceMappingURL=makerkit-constraint-handlers.d.ts.map