import { ConnectionConfig } from '../connection/connection-config';
import { UploadParameter } from './upload-parameter';
import { UploadResult } from './upload-result';
/**
* The Uploader class that handles the upload functionality
*
*
* The Uploader creation requires a ConnectionConfig that defines generally where and how the upload will be done.
* The instance of the class can be reused to upload multiple times.
*
*
* Each upload requires an UploadParameter that contains what is being uploaded along with additional details.
*/
export declare class Uploader {
readonly connectionConfig: ConnectionConfig;
private readonly blockchainTransactionService;
private readonly createProximaxDataService;
private readonly createProximaxMessagePayloadService;
/**
* Construct the class with a ConnectionConfig
*
* @param connectionConfig the connection config that defines generally where the upload will be sent
*/
constructor(connectionConfig: ConnectionConfig);
/**
* Upload a data and attach it on a blockchain transaction.
* This upload returns result once the blockchain transaction is validated and already set with `unconfirmed` status
*
* The upload throws an UploadFailureException runtime exception if does not succeed.
*
* @param uploadParam the upload parameter
* @return the upload result
*/
upload(uploadParam: UploadParameter): Promise;
private doUpload;
private createAndAnnounceTransaction;
}