import { Codec } from '@polkadot/types/types';
import { PortableRegistry } from '@polkadot/types';
import { Si1LookupTypeId } from '@polkadot/types/interfaces';
import { HexString } from '@polkadot/util/types';
import { TypeStructure } from '../types';
export declare class GearMetadata {
    private registry;
    private regTypes;
    portableRegistry: PortableRegistry;
    constructor(hexRegistry: HexString);
    private prepare;
    private registerTypes;
    createType<T extends Codec = Codec>(typeIndex: number, payload: unknown): T;
    getTypeDef(typeIndex: number | Si1LookupTypeId): string | Record<string, any>;
    getTypeDef(typeIndex: number | Si1LookupTypeId, additionalFields: false): string | Record<string, any>;
    getTypeDef(typeIndex: number | Si1LookupTypeId, additionalFields: true): TypeStructure;
    getTypeDef(typeIndex: number | Si1LookupTypeId, additionalFields?: boolean): string | Record<string, any> | TypeStructure;
    getTypeName(index: number | Si1LookupTypeId): any;
    getAllTypes(): import("@polkadot/types/types").RegistryTypes;
    getTypeIndexByName(typeName: string): number | null;
}
