import { FunctionType, CompleteClassType, ExpressionType } from "./types"; import { Note } from "./errors"; import { FunctionEntity } from "./entities"; interface OverloadCandidateResult { readonly candidate: FunctionEntity; readonly notes: readonly Note[]; } export interface OverloadResolutionResult { readonly candidates: readonly OverloadCandidateResult[]; readonly viable: FunctionEntity[]; readonly selected?: FunctionEntity; } export declare function overloadResolution(candidates: readonly FunctionEntity[], argTypes: readonly (ExpressionType | undefined)[], receiverType?: CompleteClassType): OverloadResolutionResult; export {};