/**
 * A set of common path utilities commonly used through the Astro core and integration
 * projects. These do things like ensure a forward slash prepends paths.
 */
export declare function appendExtension(path: string, extension: string): string;
export declare function appendForwardSlash(path: string): string;
export declare function prependForwardSlash(path: string): string;
export declare const MANY_LEADING_SLASHES: RegExp;
export declare function collapseDuplicateLeadingSlashes(path: string): string;
export declare function collapseDuplicateSlashes(path: string): string;
export declare const MANY_TRAILING_SLASHES: RegExp;
export declare function collapseDuplicateTrailingSlashes(path: string, trailingSlash: boolean): string;
export declare function removeTrailingForwardSlash(path: string): string;
export declare function removeLeadingForwardSlash(path: string): string;
export declare function removeLeadingForwardSlashWindows(path: string): string;
export declare function trimSlashes(path: string): string;
export declare function isRelativePath(path: string): boolean;
export declare function isInternalPath(path: string): boolean;
export declare function joinPaths(...paths: (string | undefined)[]): string;
export declare function removeFileExtension(path: string): string;
export declare function removeQueryString(path: string): string;
/**
 * Checks whether the path is considered a remote path.
 * Remote means untrusted in this context, so anything that isn't a straightforward
 * local path is considered remote.
 *
 * @param src
 */
export declare function isRemotePath(src: string): boolean;
/**
 * Checks if parentPath is a parent directory of childPath.
 */
export declare function isParentDirectory(parentPath: string, childPath: string): boolean;
export declare function slash(path: string): string;
export declare function fileExtension(path: string): string;
export declare function removeBase(path: string, base: string): string;
export declare function hasFileExtension(path: string): boolean;
/**
 * Normalizes a URL pathname to match the canonical form used by route generation.
 * This reverses the transformations done by `getUrlForPath` in generate.ts.
 *
 * - For `buildFormat: 'file'`: strips `.html` extension
 * - For `buildFormat: 'directory'/'preserve'` with `trailingSlash: 'ignore'`: strips trailing slash
 *
 * @param pathname - The URL pathname to normalize
 * @param buildFormat - The build format ('file', 'directory', or 'preserve')
 * @param trailingSlash - The trailing slash setting ('always', 'never', or 'ignore')
 */
export declare function normalizePathname(pathname: string, buildFormat: 'file' | 'directory' | 'preserve', trailingSlash: 'always' | 'never' | 'ignore'): string;
