import { NxMavenPluginOptions } from '@jnxplus/common';
import { InputDefinition } from 'nx/src/config/workspace-json-project-json';
interface PropertyType {
    key: string;
    value: string;
}
export interface MavenProjectType {
    artifactId: string;
    groupId: string;
    version: string;
    isRootProject: boolean;
    isPomPackaging: boolean;
    projectRoot: string;
    projectAbsolutePath: string;
    dependencies: (string | undefined)[];
    profileDependencies: (string | undefined)[];
    pluginDependencies: (string | undefined)[];
    parentProjectArtifactId?: string;
    aggregatorProjectArtifactId?: string;
    properties: PropertyType[];
    skipProject: boolean;
}
export interface WorkspaceDataType {
    mavenRootDirAbsolutePath: string;
    targetDefaults: string[];
    localRepo: string;
    projects: Record<string, MavenProjectType>;
}
export declare function getWorkspaceData(opts?: NxMavenPluginOptions): Promise<WorkspaceDataType>;
export declare function getNormalizedOptions(opts: NxMavenPluginOptions | undefined): NxMavenPluginOptions;
/**
 * Generate an hash filename matching all pom.xml content
 * If one pom.xml change, hash is invalidated
 *
 * @param normalizedOptions
 */
export declare function getCachePath(normalizedOptions: object): Promise<string>;
export declare function readWorkspaceDataCache(cachePath: string): WorkspaceDataType | null;
export declare function writeWorkspaceDataToCache(cachePath: string, results: WorkspaceDataType): void;
export declare function addProjects(data: WorkspaceDataType, normalizedOpts: NxMavenPluginOptions, projectRelativePath: string, aggregatorProjectArtifactId?: string): void;
export declare function getEffectiveVersion(project: MavenProjectType, workspaceData: WorkspaceDataType): string;
export declare function validateTargetInputs(targetName: string, file: 'nx.json' | 'project.json', inputs: (string | InputDefinition)[] | undefined): void;
export declare function getOutputDirLocalRepo(localRepositoryPath: string, groupId: string, artifactId: string, projectVersion: string): string;
export declare function getTask(isRootProject: boolean): "install -N" | "install";
export declare function ifOutputDirLocalRepoNotPresent(options: any): boolean;
export {};
