import { DiagnosticAddendum } from '../common/diagnostic'; import { ConstraintSolution, ConstraintSolutionSet } from './constraintSolution'; import { ConstraintSet, ConstraintTracker } from './constraintTracker'; import { AssignTypeFlags, SolveConstraintsOptions, TypeEvaluator } from './typeEvaluatorTypes'; import { ClassType, Type, TypeVarScopeId, TypeVarType } from './types'; export declare function assignTypeVar(evaluator: TypeEvaluator, destType: TypeVarType, srcType: Type, diag: DiagnosticAddendum | undefined, constraints: ConstraintTracker | undefined, flags?: AssignTypeFlags, recursionCount?: number): boolean; export declare function solveConstraints(evaluator: TypeEvaluator, constraints: ConstraintTracker, options?: SolveConstraintsOptions): ConstraintSolution; export declare function applySourceSolutionToConstraints(constraints: ConstraintTracker, srcSolution: ConstraintSolution): void; export declare function solveConstraintSet(evaluator: TypeEvaluator, constraintSet: ConstraintSet, options?: SolveConstraintsOptions): ConstraintSolutionSet; export declare function addConstraintsForExpectedType(evaluator: TypeEvaluator, type: ClassType, expectedType: Type, constraints: ConstraintTracker, liveTypeVarScopes: TypeVarScopeId[] | undefined, usageOffset?: number | undefined): boolean;