import { ClazzOrModelSchema } from 'serializr';
export declare type SerializrCallback<T> = (err: any, result: T) => void | undefined;
export declare type SerializrArrayCallback<T> = (err: any, result: T[]) => void;
/**
 * Serializes a typescript object to a JSON string with optional formatting
 * @param {T} instance - The object to serialize, is of type T
 * @param formattingSpace - an optional spacer for JSON stringify
 * @return {string}
 */
export declare function serializeToJson<T>(//
instance: T, formattingSpace?: string | number): string;
/**
 * Deserializes a typescript object from JSON string
 * @param {ClazzOrModelSchema<T>} modelschema
 * @param {string} jsonString
 * @param {(err: any, result: T) => void} callback
 * @param customArgs
 * @return {T}
 */
export declare function deserializeFromJson<T>(modelschema: ClazzOrModelSchema<T>, jsonString: string, callback?: SerializrCallback<T>, customArgs?: any): T;
/**
 * An alias method for serialize from serializr package
 * Encodes a complex object structure into a POJO
 * @param {T} instance
 */
export declare function serializeToPojo<T>(instance: T): any;
/**
 * An alias method for deserialize from serializr package
 * @param {ClazzOrModelSchema<T>} modelschema
 * @param jsObject
 * @param {(err: any, result: T) => void} callback
 * @param customArgs
 * @return {T}
 */
export declare function deserializeFromPojo<T>(modelschema: ClazzOrModelSchema<T>, jsObject: any, callback?: SerializrCallback<T>, customArgs?: any): T;
/**
 * Alias for serializeToJson
 */
export declare function serializeJson<T>(//
instance: T, formattingSpace?: string | number): string;
/**
 * Alias for deserializeFromJson
 */
export declare function deserializeJson<T>(modelschema: ClazzOrModelSchema<T>, jsonString: string, callback?: SerializrCallback<T>, customArgs?: any): T;
