/**
 * Base parser class with common issue detection logic
 */
import type { AnalysisOptions, AnalysisResult, DependencyParser, EcosystemType, Issue, IssueSeverity, PackageFileType, PackageInfo, ParseResult } from "../types.js";
/**
 * Common regex patterns used across parsers
 */
export declare const PATTERNS: {
    BARE_PACKAGE: RegExp;
    PACKAGE_WITH_VERSION: RegExp;
};
/**
 * Base analyzer with common issue detection logic
 */
export declare abstract class BaseParser implements DependencyParser {
    abstract parse(content: string): ParseResult;
    abstract canParse(content: string): boolean;
    abstract getEcosystem(): EcosystemType;
    abstract getFileTypes(): PackageFileType[];
    analyze(parseResult: ParseResult, options: AnalysisOptions): AnalysisResult;
    protected abstract analyzePackage(pkg: PackageInfo, options: AnalysisOptions, issues: Issue[]): void;
    protected analyzeEcosystemSpecific(_parseResult: ParseResult, _options: AnalysisOptions, _issues: Issue[]): void;
    protected generateRecommendations(issues: Issue[], recommendations: string[]): void;
    protected abstract addEcosystemRecommendations(recommendations: string[]): void;
    protected addIssue(issues: Issue[], pkg: PackageInfo, type: string, severity: IssueSeverity, description: string, recommendation?: string): void;
}
//# sourceMappingURL=base.d.ts.map