import { ConfigDescription, ConfigValueExtractor } from "@salesforce/code-analyzer-engine-api";
import { JavaVersionIdentifier } from "./JavaVersionIdentifier";
import { Language } from "./constants";
export declare const PMD_AVAILABLE_LANGUAGES: Language[];
export declare const CPD_AVAILABLE_LANGUAGES: Language[];
export type PmdEngineConfig = {
    java_command: string;
    rule_languages: Language[];
    file_extensions: Record<Language, string[]>;
    java_classpath_entries: string[];
    custom_rulesets: string[];
};
export declare const DEFAULT_PMD_ENGINE_CONFIG: PmdEngineConfig;
export declare const PMD_ENGINE_CONFIG_DESCRIPTION: ConfigDescription;
export type CpdEngineConfig = {
    java_command: string;
    rule_languages: Language[];
    file_extensions: Record<Language, string[]>;
    minimum_tokens: Record<Language, number>;
    skip_duplicate_files: boolean;
};
export declare const DEFAULT_CPD_ENGINE_CONFIG: CpdEngineConfig;
export declare const CPD_ENGINE_CONFIG_DESCRIPTION: ConfigDescription;
export declare function validateAndNormalizePmdConfig(configValueExtractor: ConfigValueExtractor, javaVersionIdentifier: JavaVersionIdentifier): Promise<PmdEngineConfig>;
export declare function validateAndNormalizeCpdConfig(configValueExtractor: ConfigValueExtractor, javaVersionIdentifier: JavaVersionIdentifier): Promise<CpdEngineConfig>;
export declare function makeUniqueCaseInsensitive(arr: string[]): string[];
