import { GitHub } from './github'; import { CandidateReleasePullRequest, RepositoryConfig } from './manifest'; import { Strategy } from './strategy'; import { Commit } from './commit'; import { Release } from './release'; import { Logger } from './util/logger'; /** * A plugin runs after a repository manifest has built candidate * pull requests and can make updates that span across multiple * components. A plugin *might* choose to merge pull requests or add * or update existing files. */ export declare abstract class ManifestPlugin { readonly github: GitHub; readonly targetBranch: string; readonly repositoryConfig: RepositoryConfig; protected logger: Logger; constructor(github: GitHub, targetBranch: string, repositoryConfig: RepositoryConfig, logger?: Logger); /** * Post-process candidate pull requests. * @param {CandidateReleasePullRequest[]} pullRequests Candidate pull requests * @returns {CandidateReleasePullRequest[]} Updated pull requests */ run(pullRequests: CandidateReleasePullRequest[]): Promise; /** * Pre-configure strategies. * @param {Record} strategiesByPath Strategies indexed by path * @returns {Record} Updated strategies indexed by path */ preconfigure(strategiesByPath: Record, _commitsByPath: Record, _releasesByPath: Record): Promise>; }