///
import BigNumber from '../../../dependencies/src/bignumber.js-9.0.0/bignumber';
import { SubstrateAccountId, SubstrateCompatAddressType } from '../compat/SubstrateCompatAddress';
import { SubstrateNetwork } from '../SubstrateNetwork';
import { SubstrateTransactionMethod } from './data/transaction/method/SubstrateTransactionMethod';
import { SubstrateSignatureType } from './data/transaction/SubstrateSignature';
import { SubstrateTransaction, SubstrateTransactionType } from './data/transaction/SubstrateTransaction';
import { SubstrateNodeClient } from './node/SubstrateNodeClient';
export interface SubstrateTransactionDetails {
runtimeVersion: number | undefined;
fee: BigNumber;
transaction: SubstrateTransaction;
payload: string;
}
export interface SubstrateTransactionConfig {
type: SubstrateTransactionType;
tip: string | number | BigNumber;
args: any;
}
export declare class SubstrateTransactionController {
readonly network: Network;
readonly nodeClient: SubstrateNodeClient;
constructor(network: Network, nodeClient: SubstrateNodeClient);
prepareSubmittableTransactions(accountId: SubstrateAccountId, available: BigNumber | string, txConfig: SubstrateTransactionConfig[]): Promise;
createTransaction(type: SubstrateTransactionType, accountId: SubstrateAccountId, tip?: string | number | BigNumber, args?: any, chainHeight?: number | BigNumber, nonce?: number | BigNumber): Promise>;
protected getDefaultSignatureType(): SubstrateSignatureType;
createTransactionMethod(type: SubstrateTransactionType, args?: any): Promise;
signTransaction(privateKey: Buffer, transaction: SubstrateTransaction, payload: string): Promise>;
encodeDetails(txs: SubstrateTransactionDetails[]): string;
decodeDetails(serialized: string): SubstrateTransactionDetails[];
calculateTransactionFee(transaction: SubstrateTransaction): Promise;
estimateTransactionFees(accountId: SubstrateAccountId, transationTypes: [SubstrateTransactionType, any][]): Promise;
private prepareTransactionDetails;
protected signWithPrivateKey(privateKey: Buffer, transaction: SubstrateTransaction, payload: string, signatureType: SubstrateSignatureType): Promise>;
private signPayload;
private signEd25519Payload;
private signSr25519Payload;
private signEcdsaPayload;
private substrateAddressFrom;
}