export declare namespace posix {
    type AbsolutePath = `/${string}`;
    const isPath: (path: string) => boolean;
    const isRelativePath: (path: string) => boolean;
    const isAbsolutePath: (path: string) => path is AbsolutePath;
}
export declare namespace win32 {
    type AbsolutePath = `${string}:\\${string}`;
    const isPath: (path: string) => boolean;
    const isRelativePath: (path: string) => boolean;
    const isAbsolutePath: (path: string) => path is AbsolutePath;
}
export type AbsolutePath = posix.AbsolutePath | win32.AbsolutePath;
export declare const isPath: (path: string) => boolean;
export declare const isPlatformSpecificPath: (path: string) => boolean;
export declare const isPlatformSpecificAbsolutePath: (path: string) => path is AbsolutePath;
export declare const cwd: () => AbsolutePath;
export declare const join: (abs: AbsolutePath, ...paths: string[]) => AbsolutePath;
export declare const rmExtension: (filename: string) => string;
export declare const toUnix: (path: string) => string;
export declare const toNormalizedPosixPath: (path: string) => string;
export declare const absoluteFrom: (rootdir: AbsolutePath, target: string) => AbsolutePath;
export declare const relativeFrom: (rootdir: AbsolutePath, target: string) => string;
export declare class PathStore<P extends string> {
    readonly abs: Record<P, AbsolutePath>;
    constructor(abs: Record<P, AbsolutePath>);
    rel(from: Extract<P, `${string}Dir`>): Record<P, AbsolutePath> extends infer T extends object ? { [P_1 in keyof T]: string; } : never;
}
