export default class BambuFTP {
host: string;
accessCode: string;
private client;
constructor(host: string, accessCode: string);
/**
* Read files in a given directory on the printer's SD card.
* @param path - The absolute path to the directory on the printer's SD card.
* @throws {errors.PrinterNotConnected} - If the printer is not connected.
*/
readDir(path: string): Promise<string[]>;
/**
* Send a file to the printer's SD card.
* @param sourcePath - The absolute path to the file on the local machine.
* @param destinationPath - The absolute path to the file on the printer's SD card.
* @param progressCallback - A callback function that is called with the progress of the file transfer.
*/
sendFile(sourcePath: string, destinationPath: string, progressCallback?: (progress: number) => void): Promise<void>;
/**
* Remove a file from the printer's SD card.
* @param path - The absolute path to the file on the printer's SD card.
*/
removeFile(path: string): Promise<void>;
/**
* Connect to the printer.
*/
private connect;
/**
* Disconnect from the printer.
*/
private disconnect;
/**
* Create a context for manipulating files on the printer's SD card.
* This function will connect to the printer, execute the callback, and then disconnect from the printer.
* The goal is to prevent multiple connections to the printer at the same time.
* @param host - The IP address of the printer.
* @param accessCode - The access code for the printer.
* @param callback - Callback to manipulate files within the context.
*/
static createContext(host: string, accessCode: string, callback: (context: BambuFTP) => Promise<void>): Promise<void>;
}