/// <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;
}