/**
 * Smart FK/PK Detection Algorithms
 * Phase 1: Foundation Architecture - Relationship Detection Engine
 */
import { TableMeta, ForeignKeyCandidate, TableDependencyGraph, BusinessRule, TemporalJoin, IntegrityReport, JoinConfidence } from './types';
export declare class RelationshipDetector {
    private confidenceThreshold;
    private enableFuzzyMatching;
    private enableSemanticAnalysis;
    constructor(config?: {
        confidenceThreshold?: number;
        enableFuzzyMatching?: boolean;
        enableSemanticAnalysis?: boolean;
    });
    /**
     * Detect foreign key relationships across multiple tables
     */
    inferForeignKeys(tables: TableMeta[]): Promise<ForeignKeyCandidate[]>;
    /**
     * Build comprehensive dependency graph showing table relationships
     */
    buildDependencyGraph(tables: TableMeta[]): Promise<TableDependencyGraph>;
    /**
     * Infer business relationships from table structures and naming patterns
     */
    inferBusinessRelationships(graph: TableDependencyGraph): Promise<BusinessRule[]>;
    /**
     * Detect temporal relationships for time-series joins
     */
    detectTemporalRelationships(tables: TableMeta[]): Promise<TemporalJoin[]>;
    /**
     * Validate referential integrity across identified relationships
     */
    validateIntegrity(foreignKeys: ForeignKeyCandidate[]): Promise<IntegrityReport>;
    /**
     * Calculate semantic similarity between column names
     */
    semanticSimilarity(col1: string, col2: string): number;
    /**
     * Analyze value distribution similarity between columns
     */
    distributionSimilarity(data1: any[], data2: any[]): JoinConfidence;
    private detectForeignKeysBetweenTables;
    private inferCardinality;
    private calculateNodeLevels;
    private detectCycles;
    private calculateBusinessRuleConfidence;
    private identifyTimeColumns;
    private cleanColumnName;
    private levenshteinDistance;
    private calculateDistributionStats;
    private compareRanges;
    private comparePatterns;
    private compareTypes;
    private extractPatterns;
}
//# sourceMappingURL=relationship-detector.d.ts.map