import { EventMetadataV5, FunctionMetadataV5 } 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 { StorageFunctionMetadata } from './Storage';
/**
 * @name ModuleMetadataV5
 * @description
 * The definition of a module in the system
 */
export declare class ModuleMetadataV5 extends Struct {
    constructor(value?: any);
    /**
     * @description the module calls
     */
    readonly calls: Option<Vec<FunctionMetadataV5>>;
    /**
     * @description the module events
     */
    readonly events: Option<Vec<EventMetadataV5>>;
    /**
     * @description the module name
     */
    readonly name: Text;
    /**
     * @description the module prefix
     */
    readonly prefix: Text;
    /**
     * @description the associated module storage
     */
    readonly storage: Option<Vec<StorageFunctionMetadata>>;
}
/**
 * @name MetadataV5
 * @description
 * The runtime metadata as a decoded structure
 */
export default class MetadataV5 extends Struct implements MetadataInterface<ModuleMetadataV5> {
    constructor(value?: any);
    /**
     * @description The associated modules for this structure
     */
    readonly modules: Vec<ModuleMetadataV5>;
}
