import { HandlerContext } from "../../HandlerContext";
import { EditorOrReviewerParameters } from "../common/params/BaseEditorOrReviewerParameters";
import { ProjectOperationCredentials } from "../common/ProjectOperationCredentials";
import { RepoFilter } from "../common/repoFilter";
import { RepoFinder } from "../common/repoFinder";
import { RepoRef } from "../common/RepoId";
import { RepoLoader } from "../common/repoLoader";
import { EditMode, EditModeFactory } from "./editModes";
import { AnyProjectEditor, EditResult } from "./projectEditor";
/**
 * Edit all the given repos with the given editor
 * @param {HandlerContext} ctx
 * @param credentials credentials
 * @param {ProjectEditor} editor
 * @param editInfo: EditMode determines how the edits should be applied.
 * Factory allows us to use different branches if necessary
 * @param parameters parameters (optional)
 * @param {RepoFinder} repoFinder
 * @param {} repoFilter
 * @param {RepoLoader} repoLoader
 * @return {Promise<Array<EditResult>>}
 */
export declare function editAll<R, P extends EditorOrReviewerParameters>(ctx: HandlerContext, credentials: ProjectOperationCredentials, editor: AnyProjectEditor, editInfo: EditMode | EditModeFactory, parameters: P, repoFinder: RepoFinder, repoFilter?: RepoFilter, repoLoader?: RepoLoader): Promise<EditResult[]>;
/**
 * Edit the given repo with the given editor function, which depends only on the project
 * @param {HandlerContext} ctx
 * @param credentials credentials
 * @param {ProjectEditor} editor
 * @param editInfo: EditMode determines how the edits should be applied.
 * @param singleRepository reference to the single repo to edit
 * @param parameters parameters (optional)
 * @param {RepoLoader} repoLoader (optional, useful in testing)
 * @return {Promise<EditResult>}
 */
export declare function editOne<P extends EditorOrReviewerParameters>(ctx: HandlerContext, credentials: ProjectOperationCredentials, editor: AnyProjectEditor, editInfo: EditMode, singleRepository: RepoRef, parameters?: P, repoLoader?: RepoLoader): Promise<EditResult>;
//# sourceMappingURL=editAll.d.ts.map