import type { EntityRegistry, ValueMap } from '../collections'; export type StructureDescriptorId = string; export type StructureScalarType = 'boolean' | 'integer' | 'null' | 'number' | 'string'; export type StructureLiteralValue = boolean | number | string | null; export interface StructureScalarDescriptor { readonly kind: 'scalar'; readonly type: StructureScalarType; } export interface StructureEnumDescriptor { readonly kind: 'enum'; readonly values: readonly StructureLiteralValue[]; } export interface StructureObjectField { readonly value: StructureDescriptor; readonly optional?: boolean; } export interface StructureObjectDescriptor { readonly kind: 'object'; readonly fields: ValueMap; } export interface StructureEntityRegistryDescriptor { readonly kind: 'entity-registry'; readonly key: StructureDescriptor; readonly value: StructureDescriptor; readonly identityField?: string; } export interface StructureValueMapDescriptor { readonly kind: 'value-map'; readonly key: StructureDescriptor; readonly value: StructureDescriptor; } export interface StructureSetDescriptor { readonly kind: 'set'; readonly member: StructureDescriptor; } export interface StructureOrderedListDescriptor { readonly kind: 'ordered-list'; readonly item: StructureDescriptor; } export interface StructureUnionDescriptor { readonly kind: 'union'; readonly variants: readonly StructureDescriptor[]; readonly discriminator?: string; } export interface StructureReferenceDescriptor { readonly kind: 'ref'; readonly id: StructureDescriptorId; readonly packageName?: string; } export type StructureDescriptor = StructureEntityRegistryDescriptor | StructureEnumDescriptor | StructureObjectDescriptor | StructureOrderedListDescriptor | StructureReferenceDescriptor | StructureScalarDescriptor | StructureSetDescriptor | StructureUnionDescriptor | StructureValueMapDescriptor; export interface StructureDescriptorDefinition { readonly id: StructureDescriptorId; readonly descriptor: StructureDescriptor; } export type StructureDescriptorRegistry = EntityRegistry; export interface StructureDescriptorDocument { readonly protocolVersion: 1; readonly packageName: string; readonly packageVersion: string; readonly roots: ValueMap; readonly descriptors: StructureDescriptorRegistry; } //# sourceMappingURL=types.d.ts.map