import { Balance, ExtrinsicPayloadV1, ExtrinsicPayloadV2, ExtrinsicPayloadV3, ExtrinsicPayloadV4, Hash, Index } from '../../interfaces/runtime';
import { ExtrinsicPayloadValue, IKeyringPair } from '../../types';
import Base from '../../codec/Base';
import Compact from '../../codec/Compact';
import U8a from '../../codec/U8a';
import u32 from '../../primitive/U32';
import ExtrinsicEra from './ExtrinsicEra';
interface ExtrinsicPayloadOptions {
    version?: number;
}
declare type ExtrinsicPayloadVx = ExtrinsicPayloadV1 | ExtrinsicPayloadV2 | ExtrinsicPayloadV3 | ExtrinsicPayloadV4;
/**
 * @name ExtrinsicPayload
 * @description
 * A signing payload for an [[Extrinsic]]. For the final encoding, it is variable length based
 * on the contents included
 */
export default class ExtrinsicPayload extends Base<ExtrinsicPayloadVx> {
    constructor(value: Partial<ExtrinsicPayloadValue> | Uint8Array | string | undefined, { version }?: ExtrinsicPayloadOptions);
    static decodeExtrinsicPayload(value: ExtrinsicPayload | ExtrinsicPayloadValue | Uint8Array | string | undefined, version?: number): ExtrinsicPayloadVx;
    /**
     * @description The block [[Hash]] the signature applies to (mortal/immortal)
     */
    readonly blockHash: Hash;
    /**
     * @description The [[ExtrinsicEra]]
     */
    readonly era: ExtrinsicEra;
    /**
     * @description The genesis block [[Hash]] the signature applies to
     */
    readonly genesisHash: Hash;
    /**
     * @description The [[U8a]] contained in the payload
     */
    readonly method: U8a;
    /**
     * @description The [[Index]]
     */
    readonly nonce: Compact<Index>;
    /**
     * @description The specVersion as a [[u32]] for this payload
     */
    readonly specVersion: u32;
    /**
     * @description The [[Balance]]
     */
    readonly tip: Compact<Balance>;
    /**
     * @description Compares the value of the input to see if there is a match
     */
    eq(other?: any): boolean;
    /**
     * @description Sign the payload with the keypair
     */
    sign(signerPair: IKeyringPair): {
        signature: string;
    };
    /**
     * @description Converts the Object to JSON, typically used for RPC transfers
     */
    toJSON(): any;
    /**
     * @description Returns the string representation of the value
     */
    toString(): string;
}
export {};
