/** * Cohort voting utilities for deterministic symbol assignment fallback. * * Uses file and directory cohort majority voting to assign symbols when * LLM-based assignment fails or is incomplete. */ export interface VoteEntry { moduleId: number; count: number; } export interface MemberInfo { definitionId: number; filePath: string; } export interface ModuleInfo { id: number; isTest: boolean; } export interface CohortVoteResult { fileVotes: Map>; dirVotes: Map>; fileMajority: Map; dirMajority: Map; } /** * Build file and directory vote maps from module members. */ export declare function buildVotes(modules: Array<{ id: number; members: MemberInfo[]; }>): { fileVotes: Map>; dirVotes: Map>; }; /** * Resolve majority module per file or directory from vote counts. */ export declare function resolveMajority(votes: Map>): Map; /** * Build complete cohort vote result with file and directory majorities. */ export declare function buildCohortVotes(modules: Array<{ id: number; members: MemberInfo[]; }>): CohortVoteResult; /** * Check if a symbol is from a test file. */ export declare function isTestFile(filePath: string): boolean; export interface AssignmentTarget { moduleId: number; tier: 'file' | 'directory' | null; } /** * Find assignment target for a symbol using cohort voting. * * Tier 1: Same-file majority * Tier 2: Same-directory majority (walks up parent directories) * * @param filePath Symbol's file path * @param fileMajority File-level majority votes * @param dirMajority Directory-level majority votes * @param moduleById Module lookup by ID * @param symIsTest Whether the symbol is from a test file * @returns Assignment target with tier info, or null if no match */ export declare function findAssignmentTarget(filePath: string, fileMajority: Map, dirMajority: Map, moduleById: Map, symIsTest: boolean): AssignmentTarget | null; //# sourceMappingURL=cohort-voter.d.ts.map