sicua
Version:
A tool for analyzing project structure and dependencies
40 lines (39 loc) • 1.4 kB
TypeScript
import { TypeDefinition } from "../types/internalTypes";
/**
* Utilities for comparing and measuring similarity between types
*/
export declare class TypeSimilarityUtils {
/**
* Calculate similarity between two types (0-1)
* Optimized to focus on property names which is most important
*/
static calculateTypeSimilarity(a: TypeDefinition, b: TypeDefinition): number;
/**
* Calculates detailed property similarity between two types
*/
static calculateDetailedSimilarity(a: TypeDefinition, b: TypeDefinition): {
propertySimilarity: number;
methodSimilarity: number;
extendsSimilarity: number;
overallSimilarity: number;
commonProperties: string[];
commonMethods: string[];
commonExtends: string[];
};
/**
* Find similar (but not identical) types
*/
static findSimilarTypes(candidates: TypeDefinition[], similarityThreshold?: number): TypeDefinition[][];
/**
* Find types that are structurally identical
*/
static findIdenticalTypes(types: TypeDefinition[]): TypeDefinition[][];
/**
* Group similar types with detailed similarity information
*/
static groupSimilarTypes(types: TypeDefinition[], similarityThreshold?: number): Array<{
types: TypeDefinition[];
similarity: number;
commonProperties: string[];
}>;
}