///
import { Readable } from 'stream';
import { Mosaic } from 'tsjs-xpx-chain-sdk';
import { PrivacyStrategy } from '../privacy/privacy';
import { FileParameterData } from './file-parameter-data';
import { PathParameterData } from './path-parameter-data';
import { ReadableStreamParameterData } from './readable-stream-parameter-data';
import { StringParameterData } from './string-parameter-data';
import { Uint8ArrayParameterData } from './uint8-array-parameter-data';
import { UploadParameterBuilder } from './upload-parameter-builder';
import { UploadParameterData } from './upload-parameter-data';
import { UrlResourceParameterData } from './url-resource-parameter-data';
/**
* This model class is the input parameter of upload.
*/
export declare class UploadParameter {
readonly data: UploadParameterData;
readonly signerPrivateKey: string;
readonly privacyStrategy: PrivacyStrategy;
readonly transactionDeadline: number;
readonly useBlockchainSecureMessage: boolean;
readonly generateHash: string;
readonly detectContentType: boolean;
readonly computeDigest: boolean;
readonly transactionMosaics?: Mosaic[] | undefined;
readonly recipientPublicKey?: string | undefined;
readonly recipientAddress?: string | undefined;
static createForFileUpload(file: string | FileParameterData, signerPrivateKey: string): UploadParameterBuilder;
static createForUint8ArrayUpload(data: Uint8Array | Uint8ArrayParameterData, signerPrivateKey: string): UploadParameterBuilder;
static createForStringUpload(text: string | StringParameterData, signerPrivateKey: string): UploadParameterBuilder;
static createForUrlResourceUpload(url: string | UrlResourceParameterData, signerPrivateKey: string): UploadParameterBuilder;
static createForReadableStreamUpload(readableStreamFunction: (() => Promise) | ReadableStreamParameterData, signerPrivateKey: string): UploadParameterBuilder;
static createForPathUpload(path: string | PathParameterData, signerPrivateKey: string): UploadParameterBuilder;
readonly version: string;
constructor(data: UploadParameterData, signerPrivateKey: string, privacyStrategy: PrivacyStrategy, transactionDeadline: number, useBlockchainSecureMessage: boolean, generateHash: string, detectContentType: boolean, computeDigest: boolean, transactionMosaics?: Mosaic[] | undefined, recipientPublicKey?: string | undefined, recipientAddress?: string | undefined);
}