import { Log } from 'sarif';
import SCATProvider from './scatProvider.js';
/**
 * PMD Code Analyzer implementation extending SCATProvider
 * Provides PMD-based static code analysis for non-Salesforce files
 */
export default class PMDCodeAnalyzer extends SCATProvider {
    private readonly fileList;
    /**
     * Creates a new PMD Code Analyzer instance
     *
     * @param scanDirectory - The directory to scan for non-Salesforce code
     * @param configFile - Configuration file path for PMD
     * @param fileList - Array of specific files to analyze
     * @throws Error if required parameters are missing or invalid
     * @example
     * ```typescript
     * const analyzer = new PMDCodeAnalyzer('/path/to/scan', 'pmd-config.xml', ['file1.js', 'file2.ts']);
     * ```
     */
    constructor(scanDirectory: string, configFile: string, fileList: string[]);
    /**
     * Runs the PMD analyzer on the specified files
     *
     * @param scanDirectory - Optional override for the scan directory
     * @returns Promise that resolves to the SARIF analysis results
     * @throws Error if PMD execution fails or SARIF file cannot be read
     * @example
     * ```typescript
     * const results = await analyzer.run('/custom/scan/path');
     * ```
     */
    run(scanDirectory?: string): Promise<Log>;
}
