import type { AppiumLogger } from '@appium/types';
export declare const GRADLE_URL_TEMPLATE = "https\\://services.gradle.org/distributions/gradle-VERSION-all.zip";
export declare const VERSION_KEYS: readonly ["gradle", "androidGradlePlugin", "compileSdk", "buildTools", "minSdk", "targetSdk", "kotlin", "sourceCompatibility", "targetCompatibility", "jvmTarget", "composeVersion", "espressoVersion", "annotationVersion"];
export interface ServerSigningConfig {
    zipAlign: boolean;
    keystoreFile: string;
    keystorePassword: string;
    keyAlias: string;
    keyPassword: string;
}
export interface BuildServerSigningConfigArgs {
    keystoreFile: string;
    keystorePassword: string;
    keyAlias: string;
    keyPassword: string;
}
export interface EspressoBuildConfiguration {
    toolsVersions?: Record<string, string>;
    /**
     * When false, the Espresso server is built without Jetpack Compose dependencies.
     * Defaults to true when omitted.
     */
    composeSupport?: boolean;
    additionalAppDependencies?: string[];
    additionalAndroidTestDependencies?: string[];
}
export interface ServerBuilderOptions {
    serverPath: string;
    showGradleLog?: boolean;
    buildConfiguration?: EspressoBuildConfiguration;
    testAppPackage?: string;
    signingConfig?: ServerSigningConfig | null;
}
export declare class ServerBuilder {
    private readonly log;
    private readonly serverPath;
    private readonly showGradleLog?;
    private readonly serverVersions;
    private readonly testAppPackage?;
    private readonly signingConfig?;
    private readonly additionalAppDependencies;
    private readonly additionalAndroidTestDependencies;
    private readonly composeSupport;
    constructor(log: AppiumLogger, args: ServerBuilderOptions);
    build(): Promise<void>;
    private getCommand;
    private setGradleWrapperVersion;
    private updateGradleDistUrl;
    private insertAdditionalDependencies;
    private runBuildProcess;
}
/**
 * Build keystore options for signing the built Espresso server test APK.
 *
 * @param args - Paths and credentials for the keystore used when signing.
 * @returns Configuration consumed by the Gradle signing step.
 */
export declare function buildServerSigningConfig(args: BuildServerSigningConfigArgs): ServerSigningConfig;
/**
 * Insert Gradle dependency lines after a `// placeholder` marker in a Gradle file.
 *
 * @param originalContent - Full text of the Gradle configuration file.
 * @param dependencyPlaceholder - Placeholder comment label to find (e.g. from build.gradle).
 * @param dependencyLines - Dependency lines to insert (e.g. `implementation "..."`).
 * @returns Updated file content, or the original string if the placeholder is missing.
 */
export declare function updateDependencyLines(originalContent: string, dependencyPlaceholder: string, dependencyLines: string[]): string;
//# sourceMappingURL=builder.d.ts.map