import * as M from '../meta.js'; export type Type = { kind: 'union'; variants: VariantMap; } | SimpleType; export type SimpleType = FieldType | RecordType; export type FieldType = { kind: 'unit'; } | { kind: 'array'; type: FieldType; } | { kind: 'set'; type: FieldType; } | { kind: 'dictionary'; key: FieldType; value: FieldType; } | RefType; export type RefType = { kind: 'ref'; typeName: string; ref: M.Ref | null; }; export type RecordType = { kind: 'record'; fields: FieldMap; }; export type VariantMap = Map; export type FieldMap = Map; export declare namespace Type { const union: (variants: VariantMap) => Type; const unit: () => FieldType; const ref: (typeName: string, ref: M.Ref | null) => RefType; const array: (type: FieldType) => FieldType; const set: (type: FieldType) => FieldType; const dictionary: (key: FieldType, value: FieldType) => FieldType; const record: (fields: FieldMap) => RecordType; } export declare const ANY_TYPE: FieldType; export declare function isSymbolType(ty: FieldType): ty is { kind: 'ref'; typeName: 'symbol'; ref: null; };