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'; params: Type[]; result: Type; }; export declare function T_FN(params: Type[], result: Type): TFn; export type TParam = { type: 'param'; name: string; }; export declare function T_PARAM(name: string): TParam; export type TUnion = { type: 'union'; inners: Type[]; }; export declare function T_UNION(inners: Type[]): TUnion; export type Type = TSimple | TGeneric | TFn | TParam | TUnion; 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, typeParams?: readonly Ast.TypeParam[]): Type; //# sourceMappingURL=type.d.ts.map