import { ObjectTypeDescriptor, EntityConstructor } from "../Types"; import { DocumentConventions } from "../Documents/Conventions/DocumentConventions"; export interface TypeInfo { typeName?: string; nestedTypes?: NestedTypes; } export interface NestedTypes { [propertyPath: string]: string; } export interface ITypesAwareObjectMapper { fromObjectLiteral(raw: object, typeInfo?: TypeInfo): TResult; toObjectLiteral(obj: TFrom, typeInfo?: (typeInfo: TypeInfo) => void): object; } export declare class TypesAwareObjectMapper implements ITypesAwareObjectMapper { private _dateFormat; private _throwMappingErrors; private _conventions; constructor(opts?: TypesAwareJsonObjectMapperOptions); get throwMappingErrors(): boolean; set throwMappingErrors(value: boolean); fromObjectLiteral(rawResult: object, typeInfo?: TypeInfo): TResult; fromObjectLiteral(rawResult: object, typeInfo?: TypeInfo, knownTypes?: Map): TResult; private _applyNestedTypes; toObjectLiteral(obj: TFrom): object; toObjectLiteral(obj: TFrom, typeInfoCallback?: (typeInfo: TypeInfo) => void): object; toObjectLiteral(obj: TFrom, typeInfoCallback?: (typeInfo: TypeInfo) => void, knownTypes?: Map): object; private _getFieldContext; private _getFieldContextsForMapEntries; private _getFieldContextsForSetElements; private _getFieldContextsForArrayElements; private _flattenFieldContexts; private _applyTypeToNestedProperty; private _instantiateObject; private _getKnownType; protected createEmptyObject(ctor: EntityConstructor, rawValue: object): TResult; private _makeObjectLiteral; } export interface TypesAwareJsonObjectMapperOptions { dateFormat?: string; documentConventions?: DocumentConventions; }