import * as ByteBuffer from "bytebuffer"; import ISerializer, { SerializerInput, SerializerOutput } from "../ISerializer"; type TInput = undefined | SerializerInput; type TOutput = undefined | SerializerOutput; export default class OptionalSerializer extends ISerializer, TOutput> { readonly serializer: T; constructor(serializer: T); toRaw( value: TProvided extends true ? SerializerInput : undefined, ): TProvided extends true ? SerializerOutput : undefined; appendToByteBuffer(value: TInput, bytebuffer: ByteBuffer): void; readFromBuffer(buffer: Buffer, offset?: number): { res: TOutput, newOffset: number }; }