import { type Environment } from "../../env";
import { type Token } from "../../token";
import type { Type } from "../../types/definitions";
export declare function canAssignTypeHierarchy(expected: Type, given: Type): boolean;
export interface SynthesizeTypesOptions {
    setResolvedConcreteType?: boolean;
    token?: Token;
}
export declare function _printSynthStats(): void;
export declare function synthesizeTypes(expected: {
    type: Type;
    env: Environment;
}, given: {
    type: Type;
    env: Environment;
}, checkedTypePairs?: {
    expected: Type;
    given: Type;
}[], options?: SynthesizeTypesOptions): {
    expectedEnv: Environment;
    givenEnv: Environment;
};
