/** * Suffix of the staging file an in-progress resumable upload appends to before * it is renamed over the target key (the fs adapter reserves the same one). * `list()` hides staging files, and writes refuse keys that would land on one, * so a paused or crashed upload never surfaces as a truncated object. */ export declare const RESUMABLE_STAGING_SUFFIX = ".fls-part"; /** * Whether a remote name or path is a resumable-upload staging file. Folded to * lower case because FTP/SFTP servers on Windows hosts match names * case-insensitively. */ export declare const isStagingPath: (path: string) => boolean; /** * Throw `Invalid` when a write would land on a resumable-upload staging path. * Reads and deletes of such a path stay allowed, so a stray staging file can * still be inspected or cleaned up. */ export declare const assertNotStagingPath: (adapter: string, remote: string, key: string) => void; /** * Strip leading and trailing slashes. `"/uploads/"`, `"uploads/"`, and * `"uploads"` all collapse to `"uploads"`; `"/"` collapses to `""`. */ export declare const trimSlashes: (s: string) => string; /** * Join a configured remote `root` with a virtual `key`, returning the path the * adapter hands to its client. The traversal guard runs on `key` here, so * every method that maps a key to a path gets the check for free. * * `root` shape is preserved: an absolute root (`/uploads`) yields an absolute * path, an empty/`"."` root yields a path relative to the connection's login * directory (the common SFTP chroot/home case), and a relative root prefixes * verbatim. */ export declare const joinRemotePath: (root: string, key: string) => string; //# sourceMappingURL=remote-path.d.ts.map