type State = { o: number; a: Uint8Array; v: DataView; }; type Encoder<$Type> = (state: State, value: $Type) => void; type Decoder<$Type> = (state: State) => $Type; type InferEncoder<$Type> = $Type extends Encoder ? $Value : never; type InferDecoder<$Type> = $Type extends Decoder ? $Value : never; type EncodeObjectSchema = { key: string; type: Encoder; }[]; type DecodeObjectSchema = { key: string; type: Decoder; }[]; type InferEncodeObject<$Type extends EncodeObjectSchema> = { [$Item in $Type[number] as $Item["key"]]: InferEncoder<$Item["type"]>; }; type InferDecodeObject<$Type extends DecodeObjectSchema> = { [$Item in $Type[number] as $Item["key"]]: InferDecoder<$Item["type"]>; }; type InferEncodeTuple<$Type extends Encoder[]> = { [$Key in keyof $Type]: $Type[$Key] extends Encoder ? $Value : never; }; type InferDecodeTuple<$Type extends Decoder[]> = { [$Key in keyof $Type]: $Type[$Key] extends Decoder ? $Value : never; }; declare const ASCII_DECODER: TextDecoder; declare const UTF8_DECODER: TextDecoder; declare const UTF8_ENCODER: TextEncoder; declare const encodeArray8: (type: any) => Encoder; declare const encodeArray16: (type: any) => Encoder; declare const decodeArray8: (type: any) => Decoder; declare const decodeArray16: (type: any) => Decoder; declare const encodeAscii8: Encoder; declare const encodeAscii16: Encoder; declare const decodeAscii8: Decoder; declare const decodeAscii16: Decoder; declare const encodeBool: Encoder; declare const decodeBool: Decoder; declare const encodeEnum: (options: $Type) => Encoder<$Type[number]>; declare const decodeEnum: (options: $Type) => Decoder<$Type[number]>; declare const encodeFloat32: Encoder; declare const encodeFloat64: Encoder; declare const decodeFloat32: Decoder; declare const decodeFloat64: Decoder; declare const encodeUint8: Encoder; declare const encodeUint16: Encoder; declare const encodeUint32: Encoder; declare const encodeInt8: Encoder; declare const encodeInt16: Encoder; declare const encodeInt32: Encoder; declare const decodeUint8: Decoder; declare const decodeUint16: Decoder; declare const decodeUint32: Decoder; declare const decodeInt8: Decoder; declare const decodeInt16: Decoder; declare const decodeInt32: Decoder; declare const encodeNullable: (type: Encoder<$Type>) => Encoder<$Type | null>; declare const decodeNullable: (type: Decoder<$Type>) => Decoder<$Type | null>; declare const encodeObject: (schema: $Type) => Encoder>; declare const decodeObject: (schema: $Type) => Decoder>; declare const encodeTap: (type: Encoder<$Type>, fn: (value: $Type) => any) => Encoder<$Type>; declare const decodeTap: (type: Decoder<$Type>, fn: (value: $Type) => any) => Decoder<$Type>; declare const encodeTuple: []>(types: $Type) => Encoder>; declare const decodeTuple: []>(types: $Type) => Decoder>; declare const encodeUnicode8: Encoder; declare const encodeUnicode16: Encoder; declare const decodeUnicode8: Decoder; declare const decodeUnicode16: Decoder; export { ASCII_DECODER, type DecodeObjectSchema, type Decoder, type EncodeObjectSchema, type Encoder, type InferDecodeObject, type InferDecodeTuple, type InferDecoder, type InferEncodeObject, type InferEncodeTuple, type InferEncoder, type State, UTF8_DECODER, UTF8_ENCODER, decodeArray16, decodeArray8, decodeAscii16, decodeAscii8, decodeBool, decodeEnum, decodeFloat32, decodeFloat64, decodeInt16, decodeInt32, decodeInt8, decodeNullable, decodeObject, decodeTap, decodeTuple, decodeUint16, decodeUint32, decodeUint8, decodeUnicode16, decodeUnicode8, encodeArray16, encodeArray8, encodeAscii16, encodeAscii8, encodeBool, encodeEnum, encodeFloat32, encodeFloat64, encodeInt16, encodeInt32, encodeInt8, encodeNullable, encodeObject, encodeTap, encodeTuple, encodeUint16, encodeUint32, encodeUint8, encodeUnicode16, encodeUnicode8 };