import { Project } from "@atomist/automation-client";
import { CodeTransform } from "@atomist/sdm";
import { JavaProjectCreationParameters } from "./generate/JavaProjectCreationParameters";
export declare const AllJavaFiles = "**/*.java";
export declare const JavaSourceFiles = "**/src/main/java/**/*.java";
export declare const JavaTestFiles = "**/src/main/test/**/*.java";
export declare const AllJavaAndKotlinFiles = "**/{*.java,*.kt}";
export declare const JavaAndKotlinSource = "**/src/main/**/{*.java,*.kt}";
export declare const KotlinSourceFiles = "**/src/main/kotlin/**/*.kt";
/**
 * Move files from one package to another. Defaults to
 * working on all Java and Kotlin source. Will work for Scala
 * if you pass in the appropriate glob pattern to select the files you want.
 *
 * @param project      project whose files should be moved
 * @param oldPackage   name of package to move from
 * @param newPackage   name of package to move to
 * @param globPattern  glob to select files. Defaults to all Java files in the project
 */
export declare function movePackage(project: Project, oldPackage: string, newPackage: string, globPattern?: string): Promise<Project>;
/**
 * Convert a Java package (with dots) to a source path
 * @param pkg package
 * @return {string}
 */
export declare function packageToPath(pkg: string): string;
export declare function classNameFromFqn(fqn: string): string;
export declare function packageNameFromFqn(fqn: string): string;
/**
 * Rename all instances of a Java or Kotlin class.  This method is somewhat
 * surgical when replacing appearances in Java code but brutal when
 * replacing appearances elsewhere.
 * Renames class stem (start of class name), not just a whole class name
 * Does not change filename, which is necessary in Java.
 * @param project    project whose Java classes should be renamed
 * @param oldClass   name of class to move from
 * @param newClass   name of class to move to
 */
export declare function renameClass(project: Project, oldClass: string, newClass: string): Promise<Project>;
export declare const inferStructureAndMovePackageTransform: CodeTransform<JavaProjectCreationParameters>;
