import { CallFunction, Codec, Constructor, InterfaceTypes, RegistryError, RegistryTypes, Registry, RegistryMetadata } from '../../types';
import { EventData } from '../../primitive/Generic/Event';
export declare class TypeRegistry implements Registry {
    private _classes;
    private _definitions;
    private _metadataCalls;
    private _metadataErrors;
    private _metadataEvents;
    private _metadataExtensions;
    constructor();
    findMetaCall(callIndex: Uint8Array): CallFunction;
    findMetaError(errorIndex: Uint8Array): RegistryError;
    findMetaEvent(eventIndex: Uint8Array): Constructor<EventData>;
    get<T extends Codec = Codec>(name: string): Constructor<T> | undefined;
    getDefinition(name: string): string | undefined;
    getOrThrow<T extends Codec = Codec>(name: string, msg?: string): Constructor<T>;
    getSignedExtensionExtra(): Record<string, InterfaceTypes>;
    getSignedExtensionTypes(): Record<string, InterfaceTypes>;
    hasClass(name: string): boolean;
    hasDef(name: string): boolean;
    hasType(name: string): boolean;
    register(type: Constructor | RegistryTypes): void;
    register(name: string, type: Constructor): void;
    private registerObject;
    setMetadata(metadata: RegistryMetadata): void;
}
