UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

40 lines (39 loc) 1.4 kB
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[]; }>; }