import { PrivacyStrategy } from '../privacy/privacy';
import { DownloadParameter } from './download-parameter';
/**
* This builder class creates the DownloadParameter
*/
export declare class DownloadParameterBuilder {
private readonly transactionHash;
private accountPrivateKey?;
private privacyStrategy?;
private validateDigest?;
/**
* Construct the builder class with transaction hash
* @param transactionHash the blockchain transaction hash to download
*/
constructor(transactionHash: string);
/**
* Set the account private key of either sender or recipient of the transaction (required for secure messages)
* @param accountPrivateKey the account private key
* @return the same instance of this builder
*/
withAccountPrivateKey(accountPrivateKey: string): DownloadParameterBuilder;
/**
* Set the privacy strategy to decrypt the data
*
*
* Privacy strategy defines how the data will be decrypted
* @param privacyStrategy the privacy strategy
* @return the same instance of this builder
*/
withPrivacyStrategy(privacyStrategy: PrivacyStrategy): DownloadParameterBuilder;
/**
* Set the privacy strategy as plain
*
*
* Privacy strategy defines how the data will be decrypted
* @return the same instance of this builder
*/
withPlainPrivacy(): DownloadParameterBuilder;
/**
* Set the privacy strategy as secured with password
*
*
* Privacy strategy defines how the data will be decrypted
* @param password a 50-character minimum password
* @return the same instance of this builder
*/
withPasswordPrivacy(password: string): DownloadParameterBuilder;
/**
* Set the privacy strategy as secured with nem keys
*
*
* Privacy strategy defines how the data will be decrypted
* @param privateKey the private key of one blockchain account that encrypted the data
* @param publicKey the public key of the other blockchain account that encrypted the data
* @return the same instance of this builder
*/
withNemKeysPrivacy(privateKey: string, publicKey: string): DownloadParameterBuilder;
/**
* Set the flag that indicates if need to verify digest
* @param validateDigest the validate digest flag
* @return the validate digest flag
*/
withValidateDigest(validateDigest: boolean): DownloadParameterBuilder;
build(): DownloadParameter;
}