/// <reference types="node" />
import * as nodePath from "node:path";
export type NodePathApi = typeof nodePath;
export declare const createPathUtils: (path: NodePathApi) => {
    normalize(path: string): string;
    join(...paths: string[]): string;
    resolve(...paths: string[]): string;
    isAbsolute(path: string): boolean;
    relative(from: string, to: string): string;
    dirname(path: string): string;
    basename(path: string, suffix?: string | undefined): string;
    extname(path: string): string;
    sep: "\\" | "/";
    delimiter: ";" | ":";
    parse(path: string): nodePath.ParsedPath;
    format(pathObject: nodePath.FormatInputPathObject): string;
    toNamespacedPath(path: string): string;
    posix: nodePath.PlatformPath;
    win32: nodePath.PlatformPath;
    trimExtname: (path: string, extnames?: string[]) => string;
    replaceExtname: (path: string, extname: string) => string;
    rootName: () => string;
};
declare const pathUtils: {
    normalize(path: string): string;
    join(...paths: string[]): string;
    resolve(...paths: string[]): string;
    isAbsolute(path: string): boolean;
    relative(from: string, to: string): string;
    dirname(path: string): string;
    basename(path: string, suffix?: string | undefined): string;
    extname(path: string): string;
    sep: "\\" | "/";
    delimiter: ";" | ":";
    parse(path: string): nodePath.ParsedPath;
    format(pathObject: nodePath.FormatInputPathObject): string;
    toNamespacedPath(path: string): string;
    posix: nodePath.PlatformPath;
    win32: nodePath.PlatformPath;
    trimExtname: (path: string, extnames?: string[]) => string;
    replaceExtname: (path: string, extname: string) => string;
    rootName: () => string;
};
export declare const usePath: () => {
    normalize(path: string): string;
    join(...paths: string[]): string;
    resolve(...paths: string[]): string;
    isAbsolute(path: string): boolean;
    relative(from: string, to: string): string;
    dirname(path: string): string;
    basename(path: string, suffix?: string | undefined): string;
    extname(path: string): string;
    sep: "\\" | "/";
    delimiter: ";" | ":";
    parse(path: string): nodePath.ParsedPath;
    format(pathObject: nodePath.FormatInputPathObject): string;
    toNamespacedPath(path: string): string;
    posix: nodePath.PlatformPath;
    win32: nodePath.PlatformPath;
    trimExtname: (path: string, extnames?: string[]) => string;
    replaceExtname: (path: string, extname: string) => string;
    rootName: () => string;
};
export default pathUtils;
export type IPathUtils = typeof pathUtils;
export declare class BasePath {
    #private;
    constructor(params: {
        content: string;
    });
    get content(): string;
    get extname(): string;
    replaceExtname(extname: string): BasePath;
}
export declare class RelativePath extends BasePath {
    constructor(params: {
        content: string;
    });
    toAbsolutePath(params: {
        rel: AbsolutePath;
    }): AbsolutePath;
    replaceExtname(extname: string): RelativePath;
}
export declare class AbsolutePath extends BasePath {
    constructor(params: {
        content: string;
    });
    toRelativePath(params: {
        rel: AbsolutePath;
    }): RelativePath;
    replaceExtname(extname: string): AbsolutePath;
    resolve(params: {
        next: string;
    }): AbsolutePath;
}
