import * as O from 'fp-ts/Option';
import { SimpleGit } from 'simple-git';
import * as Version from './Version';
import * as PackageJson from './PackageJson';
declare type MajorMinorVersion = Version.MajorMinorVersion;
declare type Version = Version.Version;
declare type Option = O.Option;
declare type PackageJson = PackageJson.PackageJson;
export declare const getReleaseBranchName: ({ major, minor }: MajorMinorVersion) => string;
export declare const enum BranchType {
Main = "main",
Feature = "feature",
Hotfix = "hotfix",
Spike = "spike",
Release = "release",
Dependabot = "dependabot"
}
export declare const enum BranchState {
Feature = "feature",
Hotfix = "hotfix",
Spike = "spike",
ReleaseReady = "releaseReady",
ReleaseCandidate = "releaseCandidate"
}
interface ModuleChangelog {
readonly changelogFile: string;
readonly changelogFormat: 'keepachangelog' | 'none';
}
export interface Module extends ModuleChangelog {
readonly packageJson: PackageJson;
readonly packageJsonFile: string;
}
export interface BranchDetails {
readonly currentBranch: string;
readonly version: Version;
readonly rootModule: Module;
readonly branchType: BranchType;
readonly branchState: BranchState;
readonly workspacesEnabled: boolean;
readonly modules: Record;
}
export declare const versionFromReleaseBranch: (branchName: string) => Promise;
export declare const mainBranchName = "main";
export declare const getBranchType: (branchName: string) => Option;
export declare const isValidPrerelease: (actual: string | undefined, expected: string) => boolean;
export declare const readModules: (dir: string) => Promise>;
export declare const readModulesIfEnabled: (dir: string, packageJson: {
workspaces?: string[];
}) => Promise<{
workspacesEnabled: boolean;
modules: Record;
}>;
export declare const getBranchDetails: (dir: string) => Promise;
export declare const createReleaseBranch: (releaseBranchName: string, git: SimpleGit, dir: string) => Promise;
export {};
//# sourceMappingURL=BranchLogic.d.ts.map