import type { Range } from '../../../_shared/index.js'; export type ResolutionSuppressionReason = 'adl-ordinary-lookup-blocked' | 'conversion-rank-tied' | 'inline-ns-ambiguous' | 'member-lookup-ambiguous' | 'overload-ambiguous' | 'overload-ambiguous-normalization'; export type ResolutionOutcome = { readonly kind: 'resolved'; readonly targetId: string; readonly phase: string; readonly filePath: string; readonly name: string; readonly range: Range; } | { readonly kind: 'suppressed'; readonly reason: ResolutionSuppressionReason; /** * Scope-resolution definition IDs considered by the suppression decision. * For `inline-ns-ambiguous` this is currently empty because the * qualified namespace resolver returns only an `ambiguous` sentinel. */ readonly candidateIds: readonly string[]; readonly phase: string; readonly filePath: string; readonly name: string; readonly range: Range; }; export type ResolutionOutcomeRecorder = (outcome: ResolutionOutcome) => void;