import { IModelPropertiesMapper, IModelsSerializerConstructor, IJsonDeserializerConstructor, IJsonPropertiesMapper, TJsonaDenormalizedIncludeNames, TJsonaNormalizedIncludeNamesTree, TJsonaModel, TJsonApiBody, TReduxObject, IDeserializeCacheConstructor, TDeserializeOptions } from './JsonaTypes'; declare class Jsona { modelPropertiesMapper: IModelPropertiesMapper; jsonPropertiesMapper: IJsonPropertiesMapper; DeserializeCache: IDeserializeCacheConstructor; ModelsSerializer: IModelsSerializerConstructor; JsonDeserializer: IJsonDeserializerConstructor; constructor(params?: { modelPropertiesMapper?: IModelPropertiesMapper; jsonPropertiesMapper?: IJsonPropertiesMapper; DeserializeCache?: IDeserializeCacheConstructor; ModelsSerializer?: IModelsSerializerConstructor; JsonDeserializer?: IJsonDeserializerConstructor; }); serialize({ stuff, includeNames }: { stuff: TJsonaModel | Array; includeNames?: TJsonaDenormalizedIncludeNames | TJsonaNormalizedIncludeNamesTree; }): TJsonApiBody; deserialize(body: TJsonApiBody | string, options?: TDeserializeOptions): TJsonaModel | Array; denormalizeReduxObject({ reduxObject, entityType, entityIds, returnBuilderInRelations }: { reduxObject: TReduxObject; entityType: string; entityIds?: string | Array; returnBuilderInRelations?: boolean; }): null | TJsonaModel | Array; } export default Jsona;