import { PackageJson as PackageJsonType } from "type-fest";
export type JsonArray = boolean[] | number[] | string[] | JsonFileData[] | Date[];
export type AnyJson = boolean | number | string | JsonFileData | Date | JsonArray | JsonArray[];
export type JsonFileData = {
    [key: string]: AnyJson | undefined;
};
export type PackageJsonContent = JsonFileData & PackageJsonType;
export declare class PackageJson {
    private path;
    private static readonly PACKAGE_JSON_FILE_NAME;
    private content?;
    constructor(path: string);
    getPath(): string;
    getContent(): PackageJsonContent;
    setContent(content: PackageJsonContent): void;
    getPackageName(): string | undefined;
    getPackageVersion(): string | undefined;
    isPrivate(): boolean;
    getTsDevToolsVersion(): string | undefined;
    getDependenciesPackageNames(): string[];
    getDevDependenciesPackageNames(): string[];
    getAllDependenciesPackageNames(): string[];
    hasDependency(packageName: string): boolean;
    merge(update: PackageJsonContent): void;
    backup(): string;
    restore(backupPath: string): void;
    private write;
    static fromDirPath(dirPath: string): PackageJson;
}
