import { GitProject, LocalProject } from "@atomist/automation-client";
import { FulfillableGoalDetails, Goal, ProgressLog, SpawnLogResult } from "@atomist/sdm";
import { Builder } from "@atomist/sdm-pack-build";
import { VersionedArtifact } from "../VersionedArtifact";
/**
 * Build with Maven in the local automation client.
 * This implementation requires Java and maven on the classpath.
 * Note it is NOT intended for use for multiple organizations. It's OK
 * for one organization to use inside its firewall, but there is potential
 * vulnerability in builds of unrelated tenants getting at each others
 * artifacts.
 */
export declare function mavenBuilder(args?: MavenArgs[], deploymentUnitFileLocator?: (p: LocalProject, mpi: VersionedArtifact) => string): Builder;
export interface MavenArgs {
    name: string;
    value?: string;
    type?: MavenArgType;
}
export declare enum MavenArgType {
    Property = 0,
    Option = 1
}
export declare function mavenPackage(p: GitProject, progressLog: ProgressLog, args?: MavenArgs[], mavenGoal?: string): Promise<SpawnLogResult>;
/**
 * Run an arbitrary Maven goal with the given arguments.
 * Does not take account of any generated artifact.
 * @param details goal details
 * @param {string} mavenGoal
 * @param args
 * @return {Builder}
 */
export declare function mavenRunner(details: FulfillableGoalDetails, mavenGoal: string, args?: MavenArgs[]): Goal;
