import { Constructor, DoValueMetaData, InitModelOf, ObjectModel, ObjectWithType, Predicate } from '../../index'; export declare class DataObjectDeserializer implements DataObjectDeserializerModel, ObjectWithType { model: DataObjectDeserializerModel; protected static _TYPE_VERSION_ATTRIBUTE_NAME: string; id: string; objectType: string; createPojoIfDoIsUnknown: boolean; retainTypeVersion: Predicate; constructor(model?: InitModelOf); deserialize(value: any, valueMetaData?: DoValueMetaData): T; protected _deserializeObject(rawObj: Record, metaData?: DoValueMetaData): T; protected _resolveDataObjectType(rawObj: Record, metaData?: DoValueMetaData): Constructor; protected _createResultObject(constructor: Constructor): T; protected _convertFieldValue(proto: object, rawObj: object, key: string, value: any): any; } export interface DataObjectDeserializerModel extends ObjectModel { /** * Controls the kind of object that will be created when deserializing unknown DataObjects. * If `true` a pojo will be created for unknown DOs. If `false`, instances of {@link BaseDoEntity} will be created. * Changing the type of the deserialized DataObject may change the deserialization behaviour of the property '_typeVersion' (see {@link retainTypeVersion} for more details). * Default is `false`. * * A DataObject can be unknown e.g. if: *
    *
  1. The _type attribute of the object to deserialize cannot be found in TS.
  2. *
  3. There is no _type attribute and the TypeScript attribute declaration (metadata) does not provide a class type which could be used as fallback.
  4. *
*/ createPojoIfDoIsUnknown?: boolean; /** * Controls whether the '_typeVersion' property is retained when deserializing DataObjects. * The property can be given as a {@link boolean} or a {@link Predicate}, whose input is the deserialized DataObject. * If `true`, the '_typeVersion' will be set on the deserialized DataObject. If `false`, it will be ignored. * Default is a {@link Predicate} that ignores the '_typeVersion' if the deserialized DataObject is instance of {@link BaseDoEntity}. */ retainTypeVersion?: boolean | Predicate; } //# sourceMappingURL=DataObjectDeserializer.d.ts.map