1 | declare namespace path {
|
2 | /**
|
3 | * Represents a file path as an object with components.
|
4 | */
|
5 | interface PathObject {
|
6 | /**
|
7 | * The root portion of the path.
|
8 | */
|
9 | root: string;
|
10 | /**
|
11 | * The directory portion of the path.
|
12 | */
|
13 | dir: string;
|
14 | /**
|
15 | * The base name of the file, including the extension.
|
16 | */
|
17 | base: string;
|
18 | /**
|
19 | * The file extension including the dot.
|
20 | */
|
21 | ext: string;
|
22 | /**
|
23 | * The file name without the extension.
|
24 | */
|
25 | name: string;
|
26 | }
|
27 |
|
28 | /**
|
29 | * Provides methods and properties for handling and transforming file paths.
|
30 | */
|
31 | interface Path {
|
32 | /**
|
33 | * Resolves a sequence of paths or path segments into an absolute path.
|
34 | *
|
35 | * @param pathSegments - The sequence of path segments to resolve.
|
36 | * @returns The resolved absolute path.
|
37 | */
|
38 | resolve(this: void, ...pathSegments: string[]): string;
|
39 |
|
40 | /**
|
41 | * Normalizes a path, resolving '..' and '.' segments.
|
42 | *
|
43 | * @param path - The path to normalize.
|
44 | * @returns The normalized path.
|
45 | */
|
46 | normalize(this: void, path: string): string;
|
47 |
|
48 | /**
|
49 | * Determines if a path is absolute.
|
50 | *
|
51 | * @param path - The path to check.
|
52 | * @returns `true` if the path is absolute, `false` otherwise.
|
53 | */
|
54 | isAbsolute(this: void, path: string): boolean;
|
55 |
|
56 | /**
|
57 | * Joins multiple path segments into a single path.
|
58 | *
|
59 | * @param paths - The path segments to join.
|
60 | * @returns The joined path.
|
61 | */
|
62 | join(this: void, ...paths: string[]): string;
|
63 |
|
64 | /**
|
65 | * Returns the relative path from one path to another.
|
66 | *
|
67 | * @param from - The starting path.
|
68 | * @param to - The destination path.
|
69 | * @returns The relative path from `from` to `to`.
|
70 | */
|
71 | relative(this: void, from: string, to: string): string;
|
72 |
|
73 | /**
|
74 | * Returns the directory name of a path.
|
75 | *
|
76 | * @param path - The path to get the directory name from.
|
77 | * @returns The directory name of the path.
|
78 | */
|
79 | dirname(this: void, path: string): string;
|
80 |
|
81 | /**
|
82 | * Returns the base name of a file, optionally removing the file extension.
|
83 | *
|
84 | * @param path - The path to get the base name from.
|
85 | * @param ext - An optional extension to remove from the base name.
|
86 | * @returns The base name of the file.
|
87 | */
|
88 | basename(this: void, path: string, ext?: string): string;
|
89 |
|
90 | /**
|
91 | * Returns the file extension of a path.
|
92 | *
|
93 | * @param path - The path to get the extension from.
|
94 | * @returns The file extension of the path.
|
95 | */
|
96 | extname(this: void, path: string): string;
|
97 |
|
98 | /**
|
99 | * Formats a path object into a path string.
|
100 | *
|
101 | * @param pathObject - The path object to format.
|
102 | * @returns The formatted path string.
|
103 | */
|
104 | format(this: void, pathObject: Partial<PathObject>): string;
|
105 |
|
106 | /**
|
107 | * Parses a path string into a path object.
|
108 | *
|
109 | * @param path - The path string to parse.
|
110 | * @returns The parsed path object.
|
111 | */
|
112 | parse(this: void, path: string): PathObject;
|
113 |
|
114 | /**
|
115 | * The platform-specific path segment separator.
|
116 | */
|
117 | readonly sep: string;
|
118 |
|
119 | /**
|
120 | * The platform-specific path delimiter.
|
121 | */
|
122 | readonly delimiter: string;
|
123 |
|
124 | /**
|
125 | * Provides methods for handling Windows paths (always `null`).
|
126 | */
|
127 | readonly win32: null;
|
128 |
|
129 | /**
|
130 | * Provides methods for handling POSIX paths.
|
131 | */
|
132 | readonly posix: Path;
|
133 | }
|
134 | }
|
135 | /**
|
136 | * Provides path-related utilities for handling and transforming file paths.
|
137 | */
|
138 | declare const path: path.Path;
|
139 | export = path;
|