import { Project } from "@atomist/automation-client/lib/project/Project";
import { PushTest } from "../../api/mapping/PushTest";
import { ProjectVersioner } from "../../core/delivery/build/local/projectVersioner";
import { ProjectVersionerRegistration } from "../../core/goal/common/Version";
import { ProgressLog } from "../../spi/log/ProgressLog";
import { IncrementVersionRegistration, VersionIncrementer } from "./increment";
/**
 * Version projects based on the value in a file, the path to which is
 * governed by [[versionFilePath]].
 */
export declare const FileVersioner: ProjectVersioner;
/**
 * Push test indicating if project has either a `.version` or
 * `VERSION` file at the root of the repository.
 */
export declare const HasVersionFile: PushTest;
/**
 * Versioner function registration for the [[Version]] goal.
 */
export declare const FileVersionerRegistration: ProjectVersionerRegistration;
/**
 * Return path to version file in project.  Paths interrogated are
 * `.version` and `VERSION`.  The former takes precedence if neither
 * or both exist.
 *
 * @param p Projecto look for version file in
 */
export declare function versionFilePath(p: Project): Promise<string>;
/**
 * Read version from version file in project.  Version file can be
 * `.version` or `VERSION`, with the former taking precedence if both
 * exist.  If neither exist, "0.0.0" is returned.
 *
 * @param p Project to read version file in
 * @param log Progress log to write information to
 * @return Version as string
 */
export declare function readVersionFile(p: Project, log: ProgressLog): Promise<string>;
/**
 * Write provided version to version file in project.  The path to the
 * version file is determined using [[versionFilePath]].
 *
 * @param p Project to write version file to
 * @param log Progress log to write information to
 * @param v Version to write to version file
 */
export declare function writeVersionFile(p: Project, log: ProgressLog, v: string): Promise<void>;
/**
 * Command for incrementing the patch value in version file.
 *
 * @param args Standard project incrementer arguments
 * @return Goal execution result
 */
export declare const FileVersionIncrementer: VersionIncrementer;
/**
 * Increment version registration for [[FileVersionIncrementer]].
 */
export declare const FileVersionIncrementerRegistration: IncrementVersionRegistration;
//# sourceMappingURL=file.d.ts.map