import { PrivacyStrategy } from '../privacy/privacy';
import { DirectDownloadParameter } from './direct-download-parameter';
export declare class DirectDownloadParameterBuilder {
static createFromTransactionHash(transactionHash: string, accountPrivateKey?: string, validateDigest?: boolean): DirectDownloadParameterBuilder;
static createFromDataHash(dataHash: string, digest?: string): DirectDownloadParameterBuilder;
private validateDigest;
private transactionHash?;
private accountPrivateKey?;
private dataHash?;
private privacyStrategy?;
private digest?;
private constructor();
/**
* 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): DirectDownloadParameterBuilder;
/**
* Set the privacy strategy as plain
*
*
* Privacy strategy defines how the data will be decrypted
* @return the same instance of this builder
*/
withPlainPrivacy(): DirectDownloadParameterBuilder;
/**
* 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): DirectDownloadParameterBuilder;
/**
* 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): DirectDownloadParameterBuilder;
build(): DirectDownloadParameter;
}