import { EventMetadataV7, FunctionMetadataV7, ModuleConstantMetadataV7 } from '../../interfaces/metadata';
import { MetadataInterface } from '../types';
import Option from '../../codec/Option';
import Struct from '../../codec/Struct';
import Vec from '../../codec/Vec';
import Text from '../../primitive/Text';
import { StorageMetadata } from './Storage';
/**
 * @name ModuleMetadataV7
 * @description
 * The definition of a module in the system
 */
export declare class ModuleMetadataV7 extends Struct {
    constructor(value?: any);
    /**
     * @description the module calls
     */
    readonly calls: Option<Vec<FunctionMetadataV7>>;
    /**
     * @description the module constants
     */
    readonly constants: Vec<ModuleConstantMetadataV7>;
    /**
     * @description the module events
     */
    readonly events: Option<Vec<EventMetadataV7>>;
    /**
     * @description the module name
     */
    readonly name: Text;
    /**
     * @description the associated module storage
     */
    readonly storage: Option<StorageMetadata>;
}
/**
 * @name MetadataV7
 * @description
 * The runtime metadata as a decoded structure
 */
export default class MetadataV7 extends Struct implements MetadataInterface<ModuleMetadataV7> {
    constructor(value?: any);
    /**
     * @description The associated modules for this structure
     */
    readonly modules: Vec<ModuleMetadataV7>;
}
