import { LocalProject } from "@atomist/automation-client";
import { ErrorFinder, ProgressLog, SpawnLogResult } from "@atomist/sdm";
import { ProjectIdentification } from "@atomist/sdm-core/lib/internal/delivery/build/local/projectIdentifier";
import { Builder } from "@atomist/sdm-pack-build";
import { VersionedArtifact } from "../../maven/VersionedArtifact";
export interface GradleBuilderOptions {
    deploymentUnitFileLocator: (p: LocalProject, id: VersionedArtifact & ProjectIdentification) => string;
    tasks: string[];
    flags: string[];
    arguments: Array<{
        name: string;
        value?: string;
    }>;
}
export declare const DefaultGradleBuilderOptions: GradleBuilderOptions;
/**
 * Build with Gradle 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 gradleBuilder(options?: GradleBuilderOptions): Builder;
export interface GradleCommandOptions {
    args?: Array<{
        name: string;
        value?: string;
    }>;
    tasks: string[];
    flags?: string[];
    errorFinder: ErrorFinder;
    progressLog: ProgressLog;
    initScript?: string;
}
export declare function gradleCommand(p: LocalProject, options: GradleCommandOptions): Promise<SpawnLogResult>;
export declare const GradleBuilder: Builder;
export interface GradleInfo {
    timeMillis?: number;
    success: boolean;
}
export declare const GradleErrorFinder: ErrorFinder;
