import { Project, RepoId } from "@atomist/automation-client";
import { Analyzed } from "../../../aspect/AspectRegistry";
import { PersistResult, ProjectAnalysisResultStore } from "../persist/ProjectAnalysisResultStore";
import { ScmSearchCriteria } from "./ScmSearchCriteria";
import { Analyzer, ProjectAnalysisResultFilter, SpiderOptions } from "./Spider";
export declare function existingRecordShouldBeKept(opts: {
    persister: ProjectAnalysisResultStore;
    keepExistingPersisted: ProjectAnalysisResultFilter;
}, repoId: RepoId): Promise<boolean>;
export interface AnalyzeResults {
    repoInfos: RepoInfo[];
    projectsDetected: number;
}
export interface RepoInfo {
    analysis: Analyzed;
}
/**
 * Find project or subprojects
 */
export declare function analyze(project: Project, analyzer: Analyzer, criteria: ScmSearchCriteria): Promise<AnalyzeResults>;
export declare function persistRepoInfo(opts: SpiderOptions, repoInfo: RepoInfo, moreInfo: {
    sourceData: any;
    query?: string;
    timestamp: Date;
    url: string;
}): Promise<PersistResult>;
//# sourceMappingURL=common.d.ts.map