import { BufferLike } from "../encoding/encode.js"; import { Iterator } from "../encoding/decode.js"; export interface TypeDefinition { constructor?: any; encode?: (bytes: BufferLike, value: any, it: Iterator) => any; decode?: (bytes: BufferLike, it: Iterator) => any; } export declare const registeredTypes: { [identifier: string]: TypeDefinition; }; export declare function registerType(identifier: string, definition: TypeDefinition): void; export declare function getIdentifier(klass: any): string; export declare function getType(identifier: string): TypeDefinition; export declare function defineCustomTypes(types: T): (t: keyof T) => PropertyDecorator;