import { Registration } from 'destroyable'; import { ISerializable } from '../interfaces/ISerializable'; import { ISerialized } from '../interfaces/ISerialized'; import { ISerializeRule } from '../interfaces/ISerializeRule'; /** * Serializer can serialize/deserialize objects * TODO: Extending an instances of serializers. For example add new rules to basic serializer to cerate new one with default + new rules. * TODO: Use in Collboard as default Serializer */ export declare class Serializer { private rules; constructor(rules: Array>); /** * TODO: Extending an instances of serializers. For example add new rules to basic serializer to cerate new one with default + new rules. */ addRule(...rules: Array>): Registration; serialize(instance: null): null; serialize(instance: T): ISerialized; serialize(instance: null | T): null | ISerialized; deserialize(serialized: null): null; deserialize(serialized: ISerialized): T; deserialize(serialized: null | ISerialized): null | T; deepClone(instance: TCloned): TCloned; private serializeWithPrimitives; private deserializeWithPrimitives; private getSerializeRuleFromInstance; private getSerializeRuleFromSerialized; }