import { FunctionArgumentMetadataLatest, FunctionMetadataLatest } from '../../interfaces/metadata';
import { AnyU8a, ArgsDef, CallFunction, Codec, IMethod } from '../../types';
import Struct from '../../codec/Struct';
import U8aFixed from '../../codec/U8aFixed';
import Metadata from '../../Metadata';
/**
 * @name CallIndex
 * @description
 * A wrapper around the `[sectionIndex, methodIndex]` value that uniquely identifies a method
 */
export declare class CallIndex extends U8aFixed {
    constructor(value?: AnyU8a);
}
/**
 * @name Call
 * @description
 * Extrinsic function descriptor, as defined in
 * {@link https://github.com/paritytech/wiki/blob/master/Extrinsic.md#the-extrinsic-format-for-node}.
 */
export default class Call extends Struct implements IMethod {
    protected _meta: FunctionMetadataLatest;
    constructor(value: any, meta?: FunctionMetadataLatest);
    /**
     * Decode input to pass into constructor.
     *
     * @param value - Value to decode, one of:
     * - hex
     * - Uint8Array
     * - {@see DecodeMethodInput}
     * @param _meta - Metadata to use, so that `injectMethods` lookup is not
     * necessary.
     */
    private static decodeCall;
    private static decodeCallViaObject;
    private static decodeCallViaU8a;
    static filterOrigin(meta?: FunctionMetadataLatest): FunctionArgumentMetadataLatest[];
    static findFunction(callIndex: Uint8Array): CallFunction;
    /**
     * Get a mapping of `argument name -> argument type` for the function, from
     * its metadata.
     *
     * @param meta - The function metadata used to get the definition.
     */
    private static getArgsDef;
    static injectMetadata(metadata: Metadata): void;
    /**
     * @description The arguments for the function call
     */
    readonly args: Codec[];
    /**
     * @description The argument definitions
     */
    readonly argsDef: ArgsDef;
    /**
     * @description The encoded `[sectionIndex, methodIndex]` identifier
     */
    readonly callIndex: Uint8Array;
    /**
     * @description The encoded data
     */
    readonly data: Uint8Array;
    /**
     * @description `true` if the `Origin` type is on the method (extrinsic method)
     */
    readonly hasOrigin: boolean;
    /**
     * @description The [[FunctionMetadata]]
     */
    readonly meta: FunctionMetadataLatest;
    /**
     * @description Returns the name of the method
     */
    readonly methodName: string;
    /**
     * @description Returns the module containing the method
     */
    readonly sectionName: string;
    /**
     * @description Returns the base runtime type name for this instance
     */
    toRawType(): string;
}
