import { PropertyMetadata, TypeMetadata } from '@dipscope/type-manager'; import { Entity } from './entity'; /** * Class to provide information about certain property. * * @type {PropertyInfo} */ export declare class PropertyInfo { /** * Property JSONPath from the entity. Used in error messages to give a * feedback about error location. * * @type {string} */ readonly path: string; /** * Property medatada of a property. * * @type {PropertyMetadata} */ readonly propertyMetadata: PropertyMetadata; /** * Type metadata of a property. * * @type {TypeMetadata} */ readonly typeMetadata: TypeMetadata; /** * Parent property info if there was a property traversal. * * @type {PropertyInfo} */ readonly parentPropertyInfo?: PropertyInfo; /** * Constructor. * * @param {string} path Property JSONPath from the entity. * @param {PropertyMetadata} propertyMetadata Property medatada of a property. * @param {TypeMetadata} typeMetadata Type metadata of a property. * @param {PropertyInfo} parentPropertyInfo Parent property info if there was a property traversal. */ constructor(path: string, propertyMetadata: PropertyMetadata, typeMetadata: TypeMetadata, parentPropertyInfo?: PropertyInfo); /** * Extracts property path as array. * * @returns {Array} Property path. */ extractPropertyPath(): Array; /** * Extracts serialized property path as array. * * @returns {Array} Serialized property path. */ extractSerializedPropertyPath(): Array; /** * Extracts deserialized property path as array. * * @returns {Array} Deserialized property path. */ extractDeserializedPropertyPath(): Array; /** * Extracts property value from an entity. * * @param {Entity} entity Entity. * * @returns {any} Any value. */ extractPropertyValue(entity: Entity): any; } //# sourceMappingURL=property-info.d.ts.map