///
///
import type { PathLike } from "fs";
import type { CreateAndUploadOptions, Currency, UploadResponse } from "../common/types";
import Uploader from "../common/upload";
import type Api from "../common/api";
import type Utils from "../common/utils";
import { Readable } from "stream";
import type { DataItem } from "arbundles";
export declare const checkPath: (path: PathLike) => Promise;
export default class NodeUploader extends Uploader {
constructor(api: Api, utils: Utils, currency: string, currencyConfig: Currency);
/**
* Uploads a file to the bundler
* @param path to the file to be uploaded
* @returns the response from the bundler
*/
uploadFile(path: string, opts?: CreateAndUploadOptions): Promise;
walk(dir: string): AsyncGenerator;
/**
* Preprocessor for folder uploads, ensures the rest of the system has a correct operating environment.
* @param path - path to the folder to be uploaded
* @param indexFile - path to the index file (i.e index.html)
* @param batchSize - number of items to upload concurrently
* @param interactivePreflight - whether to interactively prompt the user for confirmation of upload (CLI ONLY)
* @param keepDeleted - Whether to keep previously uploaded (but now deleted) files in the manifest
* @param logFunction - for handling logging from the uploader for UX
* @returns
*/
uploadFolder(path: string, { batchSize, keepDeleted, indexFile, interactivePreflight, logFunction, manifestTags, }?: {
batchSize: number;
keepDeleted: boolean;
indexFile?: string;
interactivePreflight?: boolean;
logFunction?: (log: string) => Promise;
manifestTags?: {
name: string;
value: string;
}[];
}): Promise;
/**
* processes an item to convert it into a DataItem, and then uploads it.
* @param item can be a string value, a path to a file, a Buffer of data or a DataItem
* @returns A dataItem
*/
protected processItem(item: string | Buffer | Readable | DataItem): Promise;
/**
* Stream-based CSV parser and JSON assembler
* @param path base path of the upload
* @param indexFile optional path to an index file
* @returns the path to the generated manifest
*/
private generateManifestFromCsv;
}