import { File as ProjectFile } from "@atomist/automation-client/lib/project/File";
import { Project } from "@atomist/automation-client/lib/project/Project";
/**
 * Path expression for a class name annotated with Spring Boot.
 * Uses Java formal grammar.
 * @type {string}
 */
export declare const SpringBootAppClassInJava = "//normalClassDeclaration\n                                [//annotation[@value='@SpringBootApplication']]\n                                /identifier";
/**
 * Path expression for a class name annotated with Spring Boot.
 * Uses Kotlin formal grammar.
 * @type {string}
 */
export declare const SpringBootAppClassInKotlin = "//classDeclaration\n                                [//annotation[@value='@SpringBootApplication']]\n                                //Identifier";
/**
 * Represents the structure of a Spring Boot project,
 * which can be inferred from its contents. Covers application class
 * and starters.
 */
export declare class SpringBootProjectStructure {
    readonly applicationPackage: string;
    readonly applicationClass: string;
    readonly appClassFile: ProjectFile;
    /**
     * Infer any number of structures, looking at both Java and Kotlin
     */
    static inferFromJavaOrKotlin(p: Project): Promise<SpringBootProjectStructure[]>;
    private static inferFromSourceWithJavaLikeImports;
    /**
     * The stem of the application class. Strip "Application" if present.
     */
    readonly applicationClassStem: string;
    /**
     * @param applicationPackage The package with the Spring Boot application class in it.
     * @param applicationClass Name of the application class within the given package
     * @param appClassFile path to the file containing the @SpringBootApplication annotation
     */
    private constructor();
}
//# sourceMappingURL=SpringBootProjectStructure.d.ts.map