///
import BigNumber from 'bignumber.js';
import BN from 'bn.js';
export interface SerializedObject {
readonly [key: string]: SerializedValueToken;
}
export declare type SerializedArray = readonly SerializedValueToken[];
export declare type SerializedMap = readonly SerializedArrayToken[];
export interface SerializedStringToken {
readonly type: 'String';
readonly value: string;
}
export interface SerializedNumberToken {
readonly type: 'Number';
readonly value: number;
}
export interface SerializedBooleanToken {
readonly type: 'Boolean';
readonly value: boolean;
}
export interface SerializedBigNumberToken {
readonly type: 'BigNumber';
readonly value: string;
}
export interface SerializedBNToken {
readonly type: 'BN';
readonly value: string;
}
export interface SerializedBufferToken {
readonly type: 'Buffer';
readonly value: string;
}
export interface SerializedUndefinedToken {
readonly type: 'Undefined';
}
export interface SerializedNullToken {
readonly type: 'Null';
}
export interface SerializedObjectToken {
readonly type: 'Object';
readonly value: SerializedObject;
}
export interface SerializedArrayToken {
readonly type: 'Array';
readonly value: SerializedArray;
}
export interface SerializedMapToken {
readonly type: 'Map';
readonly value: SerializedMap;
}
export interface SerializedSourceMapToken {
readonly type: 'SourceMap';
readonly value: SerializedObject;
}
export interface SerializedErrorToken {
readonly type: 'Error';
readonly message: string;
readonly stack: string | undefined;
}
export declare type SerializedValueToken = SerializedStringToken | SerializedNumberToken | SerializedBooleanToken | SerializedBigNumberToken | SerializedBNToken | SerializedBufferToken | SerializedObjectToken | SerializedArrayToken | SerializedMapToken | SerializedSourceMapToken | SerializedUndefinedToken | SerializedNullToken | SerializedErrorToken;
export declare type DeserializedValue = string | number | boolean | BigNumber | BN | Buffer | DeserializedObject | Promise | DeserializedArray | DeserializedMap | undefined | null | Error;
export interface DeserializedObject {
readonly [key: string]: DeserializedValue;
}
export declare type DeserializedArray = readonly any[];
export declare type DeserializedMap = Map;
export declare const serializeObject: (object: DeserializedObject) => SerializedObject;
export declare const serializeObjectToken: (object: DeserializedObject) => SerializedObjectToken;
export declare const serializeArray: (array: DeserializedArray) => SerializedArrayToken;
export declare const serializeMap: (map: DeserializedMap) => SerializedMapToken;
export declare const serialize: (value: any) => SerializedValueToken;
export declare const deserializeObject: (serializedObject: SerializedObject) => DeserializedObject;
export declare const deserializeArray: (serializedArray: SerializedArray) => DeserializedArray;
export declare const deserialize: (serializedValue: SerializedValueToken) => string | number | boolean | BigNumber | BN | Buffer | DeserializedObject | Promise | DeserializedArray | null | undefined;