import * as path from 'path-browserify';
import { IFilePath } from './FrontApplet/FileSystem/types';
/**
 * fpath utility mirrors node [path](https://nodejs.org/docs/latest/api/path.html)
 * module, but accepts IFilePath type instead of strings. It is useful when
 * working with [sos.fileSystem](/sdk/sos/fileSystem).
 *
 * Not implemented functions:
 * - format
 * - matchesGlob
 * - parse
 * - relative
 *
 * @position 99
 *
 * @example
 * import { sos, fpath } from "@signageos/front-applet";
 *
 * const [internal] = await sos.fileSystem.listInternalStorageUnits();
 * const rootPath = {
 * 	filePath: '', // Empty string is used as an absolute path instead of "/"
 * 	storageUnit: internal
 * };
 *
 * // list saved files in videos/2025-05-19/ directory
 * const videos = await sos.fileSystem.listFiles(
 *  fpath.join(rootPath, "videos", "2025-05-19"),
 * );
 */
export declare const fpath: {
    /**
     * Return the last portion of path, since it is not a valid path, a string is returned.
     *
     * @example
     * const path = { filePath: "images/picture.png", storageUnit: ... };
     * fpath.basename(path); // "picture.png"
     */
    basename(filePath: IFilePath, suffix?: string): string;
    /**
     * Removes the last portion of path, returning the parent directory of the path. Ignores trailing slashes
     *
     * @example
     * const path = { filePath: "images/picture.png", storageUnit: ... };
     * fpath.dirname(path); // { filePath: "images", storageUnit: ... }
     */
    dirname(filePath: IFilePath): IFilePath;
    /**
     * Returns extension of the path, from the last period, including the period.
     *
     * @example
     * const path = { filePath: "images/picture.png", storageUnit: ... };
     * fpath.dirname(path); // .png
     */
    extname(filePath: IFilePath): string;
    /**
     * Always returns true, because all file paths are absolute
     */
    isAbsolute(_: IFilePath): boolean;
    /**
     * Returns new filePath with paths appended to it and normalized (resolved . and ..)
     *
     * @example
     * const path = { filePath: "images", storageUnit: ... };
     * fpath.join(path, "racoons", ".", "picture.png"); // { filePath: "images/racoons/picture.png", storageUnit: ... }
     */
    join(filePath: IFilePath, ...paths: string[]): IFilePath;
    /**
     * Similar to fpath.join, but resulting path will always be subdirectory of base
     *
     * @example
     * const path = { filePath: "uploads/userA", storageUnit: ... };
     * fpath.safeJoin(path, "..", "userB", "picture.png"); // { filePath: "uploads/userA/userB/picture.png", storageUnit: ... }
     */
    safeJoin(base: IFilePath, ...paths: string[]): IFilePath;
    /**
     * Resolves . and .. in the path and removes multiple slashes
     *
     * @example
     * const path = { filePath: "images//test/../test2/./", storageUnit: ... };
     * fpath.normalize(path); // { filePath: "images/test2/", storageUnit: ... }
     */
    normalize(filePath: IFilePath): IFilePath;
    /**
     * Same as fpath.join()
     */
    resolve(filePath: IFilePath, ...paths: string[]): IFilePath;
    /**
     * Separator used for joining path segments
     */
    sep: string;
    /**
     * Concatenate fp with paths without adding separator
     *
     * @example
     * const path = { filePath: "uploads/archive.tar", storageUnit: ... };
     * fpath.concat(path, "_extracted"); // { filePath: "uploads/archive.tar_extracted", storageUnit: ... }
     */
    concat(filePath: IFilePath, ...paths: string[]): IFilePath;
    /**
     * Convert filePath to string, this string is not guaranteed to be unique and should be only used for debugging/logging
     */
    stringify(filePath: IFilePath): string;
    /**
     * Underlying path polyfill
     */
    path: path.Path;
};
