import type { Range } from '../../../_shared/index.js';
export type ResolutionSuppressionReason = 'adl-ordinary-lookup-blocked' | 'conversion-rank-tied' | 'inline-ns-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;
