import { DependencyGraph } from './dependency-graph.js'; import type { SwiftSymbol, GapReport, GapItem, ModuleGap, GapPriority, FileScanResult, TestMatchConfidence, MatchType } from '../schemas/gap.js'; export interface GapAnalysisConfig { targetPath: string; testDirectory?: string; excludePatterns?: string[]; modulePriorities?: Record; includeExtensions?: boolean; includeObjC?: boolean; verbose?: boolean; minAccessLevel?: 'open' | 'public' | 'internal' | 'fileprivate' | 'private'; enableDependencyGraph?: boolean; } export declare function getDependencyGraph(): DependencyGraph | null; interface TestMatch { testFile: string; testMethods: string[]; confidence: 'high' | 'medium' | 'low'; } /** * Normalize a symbol name for comparison * Removes common suffixes/prefixes and converts to lowercase */ export declare function normalizeSymbolName(name: string): string; export interface FuzzyMatchResult { match: boolean; confidence: TestMatchConfidence; confidencePercent: number; matchType: MatchType; } /** * Perform fuzzy matching between a production symbol and a tested symbol */ export declare function fuzzyMatch(production: string, tested: string): FuzzyMatchResult; /** * Check if a symbol is a SwiftUI View */ export declare function isSwiftUIView(symbol: SwiftSymbol): boolean; /** * Check if a symbol is a UIKit view or view controller */ export declare function isUIKitViewOrController(symbol: SwiftSymbol): boolean; /** * Calculate priority for a symbol based on its location and type */ export declare function calculatePriority(symbol: SwiftSymbol, customPriorities?: Record): GapPriority; /** * Extract test method names from test file content */ export declare function extractTestMethods(content: string): string[]; /** * Check if a test method name matches a symbol member name */ export declare function matchTestMethodToSymbol(memberName: string, testMethods: string[]): boolean; /** * Match tests to symbols using enhanced analysis with fuzzy matching */ export declare function matchTestsToSymbolsEnhanced(productionSymbols: SwiftSymbol[], testFiles: string[], verbose?: boolean): Promise>; /** * Legacy test matching for backward compatibility */ export declare function matchTestsToSymbols(productionFiles: FileScanResult[], testFiles: FileScanResult[]): Map; /** * Group symbols by their module (top-level directory under Sources) */ export declare function groupSymbolsByModule(symbols: SwiftSymbol[]): Map; /** * Analyze a Swift codebase for test coverage gaps */ export declare function analyzeGaps(config: GapAnalysisConfig): Promise; export type { GapReport, GapItem, ModuleGap, GapPriority, FileScanResult }; //# sourceMappingURL=gap-analyzer.d.ts.map