import { FlowrAnalyzerPackageVersionsPlugin } from './flowr-analyzer-package-versions-plugin';
import { SemVer } from 'semver';
import type { FlowrAnalyzerContext } from '../../context/flowr-analyzer-context';
import { FlowrRProjectFile, FlowrUvrManifestFile } from '../file-plugins/files/flowr-manifest-files';
/**
 * Extracts the project metadata and the declared dependencies from a project manifest. The name is contributed
 * without a namespace: such a project is no package, so `a::b` must not resolve against it.
 */
declare abstract class FlowrAnalyzerMetaManifestFilePlugin extends FlowrAnalyzerPackageVersionsPlugin {
    readonly version: SemVer;
    /** the manifest flavor this plugin reads, the others are left to their own plugin */
    protected abstract readonly reads: abstract new (...args: never[]) => object;
    process(ctx: FlowrAnalyzerContext): void;
}
/** Reads an rv `rproject.toml`. */
export declare class FlowrAnalyzerMetaRProjectFilePlugin extends FlowrAnalyzerMetaManifestFilePlugin {
    readonly name = "flowr-analyzer-meta-rproject-file-plugin";
    readonly description = "Extracts project meta information and dependencies from an rproject.toml.";
    protected readonly reads: typeof FlowrRProjectFile;
}
/** Reads a uvr `uvr.toml`, whose `[dev-dependencies]` land in `suggests`. */
export declare class FlowrAnalyzerMetaUvrManifestFilePlugin extends FlowrAnalyzerMetaManifestFilePlugin {
    readonly name = "flowr-analyzer-meta-uvr-manifest-file-plugin";
    readonly description = "Extracts project meta information and dependencies from a uvr.toml.";
    protected readonly reads: typeof FlowrUvrManifestFile;
}
export {};
