import { KeyInfo } from '../fetchers/BitIndexer.type';
import { RegisterAPI } from '../fetchers/RegisterAPI';
import { CreateSubAccountsParams, EditSubAccountParams, SubAccountAPI, TxsSignedOrUnSigned } from '../fetchers/SubAccountAPI';
import { EditAccountManagerParam, EditAccountOwnerParam, EditAccountRecordsParam, PayWithDotbitBalanceParam, ReturnTrxHashToServiceParam, SubmitRegisterAccountOrderParam, SubmitRegisterAccountOrderRes, SubmitRenewAccountOrderParam, SubmitRenewAccountOrderRes, TxsWithMMJsonSignedOrUnSigned } from '../fetchers/RegisterAPI.type';
import { CrossChainAPI, CrossChainReturnTrxHashToServiceParam, LockAccountParam, CrossChainAccountStatusParam, CrossChainAccountStatusRes, MintNftSignInfoParam, MintNftSignInfoRes } from '../fetchers/CrossChainAPI';
export interface RemoteTxBuilderConfig {
    subAccountUri: string;
    registerUri: string;
    crossChainUri: string;
}
export declare class RemoteTxBuilder {
    subAccountAPI: SubAccountAPI;
    registerAPI: RegisterAPI;
    crossChainAPI: CrossChainAPI;
    constructor(config: RemoteTxBuilderConfig);
    enableSubAccount(account: string, keyInfo: KeyInfo): Promise<TxsSignedOrUnSigned>;
    mintSubAccounts(params: CreateSubAccountsParams): Promise<TxsSignedOrUnSigned>;
    changeManager(params: EditAccountManagerParam): Promise<TxsWithMMJsonSignedOrUnSigned>;
    changeOwner(params: EditAccountOwnerParam): Promise<TxsWithMMJsonSignedOrUnSigned>;
    editRecords(params: EditAccountRecordsParam): Promise<TxsWithMMJsonSignedOrUnSigned>;
    editSubAccount(params: EditSubAccountParams): Promise<TxsSignedOrUnSigned>;
    submitRegisterAccountOrder(params: SubmitRegisterAccountOrderParam): Promise<SubmitRegisterAccountOrderRes>;
    submitRenewAccountOrder(params: SubmitRenewAccountOrderParam): Promise<SubmitRenewAccountOrderRes>;
    payWithDotbitBalance(params: PayWithDotbitBalanceParam): Promise<TxsWithMMJsonSignedOrUnSigned>;
    returnTrxHashToService(params: ReturnTrxHashToServiceParam): Promise<void>;
    crossChainMintNftSignInfo(params: MintNftSignInfoParam): Promise<MintNftSignInfoRes>;
    crossChainLockAccount(params: LockAccountParam): Promise<TxsWithMMJsonSignedOrUnSigned>;
    crossChainAccountStatus(params: CrossChainAccountStatusParam): Promise<CrossChainAccountStatusRes>;
    crossChainReturnTrxHashToService(params: CrossChainReturnTrxHashToServiceParam): Promise<void>;
    crossChainSendTransaction(params: Omit<TxsWithMMJsonSignedOrUnSigned, 'mm_json'>): Promise<{
        hash: string;
    }>;
}
