import { ExtData } from './ExtData'; export declare type ExtensionDecoderType = (data: Uint8Array, extensionType: number) => unknown; export declare type ExtensionEncoderType = (input: T) => Uint8Array; export declare type ExtensionIdentifier = (ext: unknown) => boolean; export interface ExtensionCodecType { encode(object: unknown): ExtData; decode(data: Uint8Array, extType: number): unknown; } export declare class ExtensionCodec implements ExtensionCodecType { static readonly defaultCodec: ExtensionCodecType; private readonly encoders; private readonly decoders; private readonly identifiers; register({ type, identifier, encode, decode, }: { type: number; identifier: ExtensionIdentifier; encode: ExtensionEncoderType; decode: ExtensionDecoderType; }): void; encode(object: unknown): ExtData; decode(data: Uint8Array, type: number): unknown; }