import { Observable } from 'rxjs';
import { Address, SignedTransaction, Transaction } from 'tsjs-xpx-chain-sdk';
import { BlockchainNetworkConnection } from '../../../connection/blockchain-network-connection';
/**
* Class represents the blockchain transaction client
*/
export declare class TransactionClient {
readonly connection: BlockchainNetworkConnection;
static readonly StatusForSuccessfulUnconfirmedTransaction = "SUCCESS";
private readonly transactionHttp;
private readonly blockchainNetworkRestApiUrl;
/**
* Construct the class with BlockchainNetworkConnection
*
* @param connection the blockchain network connection
*/
constructor(connection: BlockchainNetworkConnection);
/**
* Synchronously announce a signed transaction to blockchain
*
*
* This method is equivalent to calling `PUT /transaction`
*
* @param signedTransaction the signed transaction
* @param address the signer's address
* @return the transaction announce result
*/
announce(signedTransaction: SignedTransaction, address: Address): Promise;
/**
* Retrieves a transaction from blockchain
*
*
* This method is equivalent to calling `GET /transaction/{transactionHash}`
*
* @param transactionHash the signed transaction
* @return the transaction announce response
*/
getTransaction(transactionHash: string): Observable;
private announceAndWaitForStatus;
private getAddedFailedTransactionStatus;
private getAddedUnconfirmedTransactionStatus;
private getListener;
private closeListener;
}