import { DeflateOptions, InflateOptions } from "./options"; /** Reporesents a generic property serializer */ interface PropertySerializer { /** Identifies property in `serializable` */ readonly propertyName: string; /** Identifies property in `serialized` */ readonly propertyTag: TTag; /** Serializes target property from `serializable` and writes value to `serialized` */ down(serializable: TOriginal, serialized: TSerialized, options?: DeflateOptions): void | Promise; /** Deserializes target property from `serialized` and writes value to `serializable` */ up(serializable: TOriginal, serialized: TSerialized, options?: InflateOptions): void | Promise; } export default PropertySerializer;