import { ExtData } from "./ExtData"; export declare type ExtensionDecoderType = (data: Uint8Array, extensionType: number, context: ContextType) => unknown; export declare type ExtensionEncoderType = (input: unknown, context: ContextType) => Uint8Array | null; export declare type ExtensionCodecType = { __brand?: ContextType; tryToEncode(object: unknown, context: ContextType): ExtData | null; decode(data: Uint8Array, extType: number, context: ContextType): unknown; }; export declare class ExtensionCodec implements ExtensionCodecType { static readonly defaultCodec: ExtensionCodecType; __brand?: ContextType; private readonly builtInEncoders; private readonly builtInDecoders; private readonly encoders; private readonly decoders; constructor(); register({ type, encode, decode, }: { type: number; encode: ExtensionEncoderType; decode: ExtensionDecoderType; }): void; tryToEncode(object: unknown, context: ContextType): ExtData | null; decode(data: Uint8Array, type: number, context: ContextType): unknown; }