import * as IR from "../../ir"; import { Universe, CrochetModule, CrochetType, CrochetTrait, CrochetValue, CrochetTypeConstraint } from "../intrinsics"; export declare function is_subtype(type: CrochetType, parent: CrochetType): boolean; export declare function fulfills_constraint(constraint: CrochetTypeConstraint, type: CrochetType): boolean; export declare function has_trait(trait: CrochetTrait, type: CrochetType): boolean; export declare function get_static_type(universe: Universe, type: CrochetType): CrochetType; export declare function get_type(module: CrochetModule, name: string): CrochetType; export declare function get_trait(module: CrochetModule, name: string): CrochetTrait; export declare function get_type_namespaced(module: CrochetModule, namespace: string, name: string): CrochetType; export declare function materialise_type(universe: Universe, module: CrochetModule, type: IR.Type): CrochetType; export declare function materialise_type_constraint(universe: Universe, module: CrochetModule, constraint: IR.TypeConstraint): CrochetTypeConstraint; export declare function materialise_trait(universe: Universe, module: CrochetModule, trait: IR.Trait): CrochetTrait; export declare function get_foreign_type(universe: Universe, module: CrochetModule, name: string): CrochetType; export declare function define_type(module: CrochetModule, name: string, type: CrochetType, visibility: IR.Visibility): void; export declare function define_trait(module: CrochetModule, name: string, trait: CrochetTrait): void; export declare function get_function_type(universe: Universe, arity: number): CrochetType; export declare function distance(type: CrochetType): number; export declare function compare(t1: CrochetType, t2: CrochetType): number; export declare function compare_constraints(t1: CrochetTypeConstraint, t2: CrochetTypeConstraint): number; export declare function constraint_distance(t: CrochetTypeConstraint): number; export declare function seal(type: CrochetType): void; export declare function registered_instances(universe: Universe, type: CrochetType): Generator;