import * as ByteBuffer from "bytebuffer"; import ISerializer, { SerializerInput, SerializerOutput } from "../ISerializer"; export type Variants = { [key: number]: ISerializer }; type TInput = [ TVariant, TVariant extends keyof T ? SerializerInput : never, ]; type TOutput = [ TVariant, TVariant extends keyof T ? SerializerOutput : never, ]; export default class StaticVariantSerializer extends ISerializer, TOutput> { readonly serializers: Readonly; constructor(serializers: Readonly); toRaw(value: TInput): TOutput; appendToByteBuffer(value: TInput, bytebuffer: ByteBuffer): void; readFromBuffer( buffer: Buffer, offset?: number, ): { res: TOutput, newOffset: number }; }