/**
 * Intelligent Column Matching Engine
 * Phase 1: Foundation Architecture - Advanced column similarity detection
 */
import { ColumnSchema, JoinConfidence, CardinalityType, TableMeta, ForeignKeyCandidate, JoinStrategy } from './types';
export interface ColumnMatcher {
    semanticSimilarity(col1: string, col2: string): number;
    distributionSimilarity(data1: any[], data2: any[]): JoinConfidence;
    detectCardinality(table1: TableMeta, table2: TableMeta, col1: string, col2: string): CardinalityType;
    inferForeignKeys(tables: TableMeta[]): ForeignKeyCandidate[];
}
export declare class IntelligentColumnMatcher implements ColumnMatcher {
    private semanticCache;
    private commonPatterns;
    private domainKnowledge;
    constructor();
    /**
     * Calculate semantic similarity between two column names
     * Uses multiple strategies: exact matching, pattern matching, domain knowledge
     */
    semanticSimilarity(col1: string, col2: string): number;
    /**
     * Analyze distribution similarity between column data
     */
    distributionSimilarity(data1: any[], data2: any[]): JoinConfidence;
    /**
     * Detect cardinality relationship between two columns
     */
    detectCardinality(table1: TableMeta, table2: TableMeta, col1: string, col2: string): CardinalityType;
    /**
     * Infer foreign key relationships using statistical signatures
     */
    inferForeignKeys(tables: TableMeta[]): ForeignKeyCandidate[];
    /**
     * Suggest optimal join strategy based on column characteristics
     */
    suggestJoinStrategy(col1: ColumnSchema, col2: ColumnSchema, semanticSim: number, distributionSim: JoinConfidence): JoinStrategy;
    private initializePatterns;
    private initializeDomainKnowledge;
    private cleanColumnName;
    private domainBasedSimilarity;
    private patternBasedSimilarity;
    private structuralSimilarity;
    private fuzzyStringSimilarity;
    private calculateDetailedStats;
    private compareStatisticalProperties;
    private compareStructuralProperties;
    private compareDomainProperties;
    private compareSemanticProperties;
    private detectForeignKeysBetweenTables;
    private assessForeignKeyLikelihood;
    private hasCommonPatterns;
    private isNumericOrDate;
    private extractStructuralPattern;
    private longestCommonPrefix;
    private longestCommonSuffix;
    private levenshteinDistance;
    private extractDataPatterns;
    private analyzeDataTypes;
    private calculateDistribution;
    private calculateTypeOverlap;
    private calculatePatternOverlap;
    private calculateDomainSpecificSimilarity;
}
//# sourceMappingURL=column-matcher.d.ts.map