///
export default abstract class ISerializer {
abstract toJSON(value: TInput): TJSONOutput;
abstract fromJSON(value: TJSONOutput): TOutput;
abstract toBuffer(value: TInput): Buffer;
abstract readFromBuffer(buffer: Buffer, offset?: number): {
res: TOutput;
newOffset: number;
};
stringify(value: TInput): string;
parse(value: string | Buffer): TOutput;
fromBuffer(buffer: Buffer): TOutput;
}
export declare type InputOf = TSerializer extends ISerializer ? T : never;
export declare type OutputOf = TSerializer extends ISerializer ? T : never;
export declare type JSONOutputOf = TSerializer extends ISerializer ? T : never;