/** @packageDocumentation * @module Content */ import { ClassInfoJSON, CompressedClassInfoJSON, PropertyInfo, PropertyInfoJSON, RelationshipPath, RelationshipPathJSON } from "../EC"; /** * Data structure that describes one step of property * accessor path. * * @public */ export interface PropertyAccessor { /** Name of ECProperty */ propertyName: string; /** If the property is an array, array index. Otherwise undefined. */ arrayIndex?: number; } /** * Describes path to a property. * @public */ export declare type PropertyAccessorPath = PropertyAccessor[]; /** * Data structure that describes a single ECProperty that's * included in a [[PropertiesField]]. * * @public */ export interface Property { /** ECProperty information */ property: PropertyInfo; /** * Relationship path from [Primary instance]($docs/learning/presentation/Content/Terminology#primary-instance) to * this property. This array is not empty only for [Related properties]($docs/learning/presentation/Content/Terminology#related-properties). * * @deprecated All property fields are now contained inside a [[NestedContentField]] with `pathToPrimaryClass` attribute. */ relatedClassPath: RelationshipPath; } /** @public */ export declare namespace Property { /** Serialize [[Property]] to JSON */ function toJSON(prop: Property): PropertyJSON; /** Serialize [[Property]] to compressed JSON */ function toCompressedJSON(prop: Property, classesMap: { [id: string]: CompressedClassInfoJSON; }): PropertyJSON; /** Deserializes [[Property]] from JSON */ function fromJSON(json: PropertyJSON): Property; } /** * JSON representation of [[Property]] * @public */ export interface PropertyJSON { property: PropertyInfoJSON; /** @deprecated See [[Property.relatedClassPath]] */ relatedClassPath: RelationshipPathJSON; } //# sourceMappingURL=Property.d.ts.map