import { DamlLfDefinition } from "./daml-lf-definition.js"; import { DamlLfField } from "./daml-lf-field.js"; import { DamlLfNodeKind } from "./daml-lf-node-kind.js"; import { DamlLfType } from "./daml-lf-type.js"; export type DamlLfTypeParameterKind = { readonly kind: "star"; } | { readonly kind: "nat"; } | { readonly kind: "arrow"; readonly parameters: readonly DamlLfTypeParameterKind[]; readonly result: DamlLfTypeParameterKind; } | { readonly kind: "unknown"; readonly internedKindIndex?: number; }; export interface DamlLfTypeParameter { readonly name?: string; readonly internedStringIndex: number; readonly kind: DamlLfTypeParameterKind; } export type DamlLfDataTypeDefinition = { readonly kind: "record"; readonly fields: readonly DamlLfField[]; } | { readonly kind: "variant"; readonly constructors: readonly DamlLfVariantConstructor[]; } | { readonly kind: "enum"; readonly constructors: readonly string[]; }; export interface DamlLfVariantConstructor { readonly name: string; readonly type: DamlLfType; } export declare class DamlLfDataType extends DamlLfDefinition { readonly nodeKind = DamlLfNodeKind.dataType; readonly definition: DamlLfDataTypeDefinition; readonly fields: readonly DamlLfField[]; readonly serializable: boolean; readonly typeParameters: readonly DamlLfTypeParameter[]; constructor(init: { name: string; definition?: DamlLfDataTypeDefinition; fields?: readonly DamlLfField[]; serializable?: boolean; typeParameters?: readonly DamlLfTypeParameter[]; }); }