import type * as Ast from './node.js'; export type TSimple = { type: 'simple'; name: N; }; export declare function T_SIMPLE(name: T): TSimple; export declare function isAny(x: Type): x is TSimple<'any'>; export type TGeneric = { type: 'generic'; name: N; inners: Type[]; }; export declare function T_GENERIC(name: N, inners: Type[]): TGeneric; export type TFn = { type: 'fn'; args: Type[]; result: Type; }; export declare function T_FN(args: Type[], result: Type): TFn; export type Type = TSimple | TGeneric | TFn; export declare function isCompatibleType(a: Type, b: Type): boolean; export declare function getTypeName(type: Type): string; export declare function getTypeNameBySource(typeSource: Ast.TypeSource): string; export declare function getTypeBySource(typeSource: Ast.TypeSource): Type;