import { AClass, Class } from "./util/Core"; import { DataValue } from "./DataValue"; import { Expl } from "./Expl"; import { Expr } from "./Expr"; import { DataElim } from "./Match"; import { PrimValue, Str } from "./Value"; export declare class PrimType { name: Str; C: Class; constructor(name: Str, C: Class); } export declare class DataType { name: Str; elimC: Class; ctrs: Map; exprC̅: Map>; explC̅: Map>; constructor(name: Str, elimC: Class, ctrs: Map, exprC̅: Map>, explC̅: Map>); } export declare class Ctr { C: Class; f̅: string[]; constructor(C: Class, f̅: string[]); readonly arity: number; readonly c: string; } export declare function ctrFor(c: string): Ctr; export declare function explClass(C: Class): Class; export declare function exprClass(C: Class): Class; export declare function valueClass(C: Class): Class; export declare const types: Map; export declare const ctrToDataType: Map; export declare const elimToDataType: Map; export declare function initDataType(D: AClass, C̅: Class[]): void;