/// import type Sync from "./sync"; import { type Delta } from "./deltas"; import { type RemoteItem } from "./filesystems/remote"; import fs from "fs-extra"; import { Prettify } from "../types"; export type TaskError = Prettify<{ path: string; error: Error; uuid: string; } & ({ type: "uploadFile" | "createRemoteDirectory" | "createLocalDirectory" | "deleteLocalFile" | "deleteRemoteFile" | "deleteLocalDirectory" | "deleteRemoteDirectory" | "downloadFile"; } | { type: "renameLocalFile" | "renameRemoteFile" | "renameRemoteDirectory" | "renameLocalDirectory"; from: string; to: string; })>; export type DoneTask = { path: string; } & ({ type: "uploadFile"; item: RemoteItem; stats: fs.Stats; } | { type: "createRemoteDirectory"; item: RemoteItem; stats: fs.Stats; } | { type: "createLocalDirectory"; stats: fs.Stats; item: RemoteItem; } | { type: "deleteLocalFile"; } | { type: "deleteRemoteFile"; } | { type: "deleteLocalDirectory"; } | { type: "deleteRemoteDirectory"; } | { type: "downloadFile"; stats: fs.Stats; item: RemoteItem; } | { type: "renameLocalFile"; from: string; to: string; stats: fs.Stats; } | { type: "renameRemoteFile"; from: string; to: string; } | { type: "renameRemoteDirectory"; from: string; to: string; } | { type: "renameLocalDirectory"; from: string; to: string; stats: fs.Stats; }); /** * Tasks * @date 3/1/2024 - 11:11:32 PM * * @export * @class Tasks * @typedef {Tasks} */ export declare class Tasks { private readonly sync; private readonly transfersSemaphore; private readonly normalSemaphore; /** * Creates an instance of Tasks. * * @constructor * @public * @param {Sync} sync */ constructor(sync: Sync); waitForPause(): Promise; /** * Process a delta task. * * @private * @async * @param {Delta} delta * @returns {Promise} */ private processTask; /** * Process all deltas. * * @public * @async * @param {{ deltasSorted: Delta[] }} param0 * @param {{}} param0.deltasSorted * @returns {Promise<{ * doneTasks: DoneTask[] * errors: TaskError[] * }>} */ process({ deltasSorted }: { deltasSorted: Delta[]; }): Promise<{ doneTasks: DoneTask[]; errors: TaskError[]; }>; } export default Tasks;