import { AddressOrPair, SignerOptions, SubmittableExtrinsic } from '@polkadot/api/types';
import { Hash, RuntimeDispatchInfo } from '@polkadot/types/interfaces';
import { ISubmittableResult } from '@polkadot/types/types';
import { GearApi } from '../GearApi';
import { TransactionStatusCb } from '../types';
export declare class GearTransaction {
    protected _api: GearApi;
    extrinsic: SubmittableExtrinsic<'promise', ISubmittableResult>;
    constructor(_api: GearApi);
    signAndSend(account: AddressOrPair, callback: TransactionStatusCb): Promise<() => void>;
    signAndSend(account: AddressOrPair, options?: Partial<SignerOptions>): Promise<Hash>;
    signAndSend(account: AddressOrPair, options: Partial<SignerOptions>, callback: TransactionStatusCb): Promise<() => void>;
    /**
     *
     * @param account
     * @param options
     * @example
     * ```javascript
     * const api = await GearApi.create();
     * api.program.submit({code, gasLimit});
     * // same for api.message, api.reply and others
     * const paymentInfo = await api.program.paymentInfo(alice);
     * const transactionFee = paymentInfo.partialFee.toNumber();
     * consolg.log(transactionFee);
     * ```
     */
    paymentInfo(account: AddressOrPair, options?: Partial<SignerOptions>): Promise<RuntimeDispatchInfo>;
}
