import { TypeDef } from '../../codec/types';
import { EventMetadataLatest } from '../../interfaces/metadata';
import { EventId } from '../../interfaces/system';
import { Constructor } from '../../types';
import Struct from '../../codec/Struct';
import Tuple from '../../codec/Tuple';
import Metadata from '../../Metadata';
import Null from '../Null';
/**
 * @name EventData
 * @description
 * Wrapper for the actual data that forms part of an [[Event]]
 */
export declare class EventData extends Tuple {
    private _meta;
    private _method;
    private _section;
    private _typeDef;
    constructor(Types: Constructor[], value: Uint8Array, typeDef: TypeDef[], meta: EventMetadataLatest, section: string, method: string);
    /**
     * @description The wrapped [[EventMetadata]]
     */
    readonly meta: EventMetadataLatest;
    /**
     * @description The method as a string
     */
    readonly method: string;
    /**
     * @description The section as a string
     */
    readonly section: string;
    /**
     * @description The [[TypeDef]] for this event
     */
    readonly typeDef: TypeDef[];
}
/**
 * @name Event
 * @description
 * A representation of a system event. These are generated via the [[Metadata]] interfaces and
 * specific to a specific Substrate runtime
 */
export default class Event extends Struct {
    constructor(_value?: Uint8Array);
    static decodeEvent(value?: Uint8Array): {
        DataType: Constructor<Null> | Constructor<EventData>;
        value?: {
            index: Uint8Array;
            data: Uint8Array;
        };
    };
    static injectMetadata(metadata: Metadata): void;
    /**
     * @description The wrapped [[EventData]]
     */
    readonly data: EventData;
    /**
     * @description The [[EventId]], identifying the raw event
     */
    readonly index: EventId;
    /**
     * @description The [[EventMetadata]] with the documentation
     */
    readonly meta: EventMetadataLatest;
    /**
     * @description The method string identifying the event
     */
    readonly method: string;
    /**
     * @description The section string identifying the event
     */
    readonly section: string;
    /**
     * @description The [[TypeDef]] for the event
     */
    readonly typeDef: TypeDef[];
}
