import { Indexable, JsonObject, JsonType, SerializablePrimitiveType, SerializableType } from "./interfaces"; /** * takes an indexable object ie `{ [idx: string] : T }` and for each key serializes the object using the provided class type. * @param source - an indexable object * @param type - Type to serialize * * @return Indexable object of JsonType */ export declare function SerializeMap(source: T, type: SerializableType): Indexable; /** * takes an array of objects and serializes each entry using the provided class type * * @param source - An array of objects * @param type - Type to serialize each entry of the array * * @return Array of JsonType */ export declare function SerializeArray(source: Array, type: SerializableType): Array; export declare function SerializePrimitive(source: SerializablePrimitiveType, type: SerializablePrimitiveType): JsonType; /** * takes any value and serializes it as json, no structure is assumed and any serialization annotations on any processed objects are totally ignored. * @param source * @param transformKeys * * @return JsonType */ export declare function SerializeJSON(source: any, transformKeys?: boolean): JsonType; /** * takes a single object and serializes it using the provided class type. * @param instance - A single object to serialize * @param type - Type to serialize the instance * * @return A JsonObject or null */ export declare function Serialize(instance: T, type: SerializableType): JsonObject | null;