import * as O from 'fp-ts/Option';
import * as t from 'io-ts';
import * as Version from './Version';
declare type Option<A> = O.Option<A>;
declare type Version = Version.Version;
export interface PackageJson {
    readonly name: string;
    readonly version?: Version;
    readonly workspaces?: string[];
    readonly beehiveFlow?: {
        readonly primaryWorkspace?: string;
    };
    readonly dependencies?: Record<string, string>;
    readonly devDependencies?: Record<string, string>;
    readonly [k: string]: unknown;
}
export declare const versionCodec: t.Type<Version.Version, string, string>;
export declare const packageJsonCodec: () => t.Type<PackageJson, unknown>;
export declare const pjInFolder: (folder: string) => string;
export declare const decodeE: (j: unknown) => t.Validation<PackageJson>;
export declare const decode: (j: unknown) => Promise<PackageJson>;
export declare const parsePackageJsonFile: (file: string) => Promise<PackageJson>;
export declare const parsePackageJsonFileInFolder: (folder: string) => Promise<PackageJson>;
export declare const toJson: (pj: PackageJson) => unknown;
export declare const writePackageJsonFile: (file: string, pj: PackageJson) => Promise<void>;
export declare const setVersion: (pj: PackageJson, version: Option<Version>) => PackageJson;
export declare const writePackageJsonFileWithNewVersion: (pj: PackageJson, newVersion: Version, pjFile: string) => Promise<PackageJson>;
export declare const shouldNotHavePreReleasePackages: (pj: PackageJson) => Promise<void>;
export {};
//# sourceMappingURL=PackageJson.d.ts.map