export type ReviverFunction = (key: string, value: any) => any;
export type ReplacerFunction = (key: string, value: any) => any;
export declare class JsonSerializer {
    private readonly _reviver?;
    private readonly _replacer?;
    constructor(reviver: ReviverFunction, replacer: ReplacerFunction);
    deserialize<TResult = object>(jsonString: string): TResult;
    serialize(obj: object): string;
    /**
     * Serializer which doesn't touch casing - just using build-in JS functions like
     * stringify and parse.
     */
    static getDefault(): JsonSerializer;
    /**
     * Serialization changes from camelCasing to PascalCasing
     * Deserialization changes from PascalCasing to camelCasing
     */
    static getDefaultForCommandPayload(): JsonSerializer;
    static toPlainObject<T>(obj: T): T;
}
//# sourceMappingURL=Serializer.d.ts.map