/// 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;