import { Project } from "@atomist/automation-client"; import { AutoCodeInspection, Autofix, AutofixRegistration, AutoInspectRegistration, Goal, SdmContext, SoftwareDeliveryMachine } from "@atomist/sdm"; import { Interpretation, Interpreter } from "../Interpretation"; import { ManagedFeature } from "../ManagedFeature"; import { ProjectAnalysis, ProjectAnalysisOptions, TechnologyElement } from "../ProjectAnalysis"; import { Classification, ConditionalRegistration, ProjectAnalyzer, ProjectAnalyzerBuilder, Scorer, StackSupport } from "../ProjectAnalyzer"; import { FastProject, PhasedTechnologyScanner, ScannerAction } from "../TechnologyScanner"; import { TransformRecipeContributionRegistration } from "../TransformRecipeContributor"; /** * Implementation of both ProjectAnalyzer and ProjectAnalyzerBuilder. * Inspect repos to find tech stack and CI info */ export declare class DefaultProjectAnalyzerBuilder implements ProjectAnalyzer, ProjectAnalyzerBuilder { private readonly sdm; readonly scanners: Array>>; readonly features: ManagedFeature[]; readonly interpreters: Array>; readonly transformRecipeContributorRegistrations: TransformRecipeContributionRegistration[]; readonly possibleAutofixes: AutofixRegistration[]; readonly possibleCodeInspections: Array>; readonly autofixGoal: Autofix; readonly codeInspectionGoal: AutoCodeInspection; readonly messageGoal: Goal; readonly scorers: Array>; private readonly queueGoal; constructor(sdm: SoftwareDeliveryMachine); withScanner(scanner: ScannerAction | ConditionalRegistration>): this; withFeature(feature: ManagedFeature): ProjectAnalyzerBuilder; withFeatures(features: ManagedFeature[]): ProjectAnalyzerBuilder; withInterpreter(raw: Interpreter | ConditionalRegistration): this; withScorer(scorer: Scorer | ConditionalRegistration): ProjectAnalyzerBuilder; withStack(stackSupport: StackSupport): this; withTransformRecipeContributor(trc: TransformRecipeContributionRegistration): this; /** * Construct and return analyzer * @return */ build(): ProjectAnalyzer; classify(p: FastProject, sdmContext: SdmContext): Promise; interpret(p: Project | ProjectAnalysis, sdmContext: SdmContext, options?: ProjectAnalysisOptions): Promise; /** * Return a CodeInspection gathering all data * @return */ analyze(p: Project, sdmContext: SdmContext, options?: ProjectAnalysisOptions): Promise; private runInterpretation; private enrichToFullAnalysis; }