import { IAirGapTransaction } from '../../../../../../interfaces/IAirGapTransaction';
import { SubstrateNetwork } from '../../../../SubstrateNetwork';
import { SCALEDecoder, SCALEDecodeResult } from '../../scale/SCALEDecoder';
import { SCALEType } from '../../scale/type/SCALEType';
import { SubstrateTransactionType } from '../SubstrateTransaction';
export declare abstract class SubstrateTransactionMethodArgsFactory<T> {
    protected readonly network: SubstrateNetwork;
    protected readonly args: T;
    static create(network: SubstrateNetwork, type: SubstrateTransactionType, args: any): SubstrateTransactionMethodArgsFactory<any>;
    protected constructor(network: SubstrateNetwork, args: T);
    abstract createFields(): [string, SCALEType][];
    abstract createToAirGapTransactionParts(): () => Partial<IAirGapTransaction>[];
}
export declare abstract class SubstrateTransactionMethodArgsDecoder<T> {
    static create(type: SubstrateTransactionType): SubstrateTransactionMethodArgsDecoder<any>;
    decode(network: SubstrateNetwork, raw: string): SCALEDecodeResult<T>;
    protected abstract _decode(decoder: SCALEDecoder): SCALEDecodeResult<T>;
}
