import { EventFired, HandleEvent } from "@atomist/automation-client/lib/HandleEvent";
import { HandlerContext } from "@atomist/automation-client/lib/HandlerContext";
import { HandlerResult } from "@atomist/automation-client/lib/HandlerResult";
import { PreferenceStoreFactory } from "../../../../../api/context/preferenceStore";
import { EnrichGoal } from "../../../../../api/goal/enrichGoal";
import { GoalImplementationMapper } from "../../../../../api/goal/support/GoalImplementationMapper";
import { TagGoalSet } from "../../../../../api/goal/tagGoalSet";
import { GoalsSetListener } from "../../../../../api/listener/GoalsSetListener";
import { GoalSetter } from "../../../../../api/mapping/GoalSetter";
import { CredentialsResolver } from "../../../../../spi/credentials/CredentialsResolver";
import { ProjectLoader } from "../../../../../spi/project/ProjectLoader";
import { RepoRefResolver } from "../../../../../spi/repo-ref/RepoRefResolver";
import { OnPushToAnyBranch } from "../../../../../typings/types";
/**
 * Set up goalSet on a push (e.g. for delivery).
 */
export declare class SetGoalsOnPush implements HandleEvent<OnPushToAnyBranch.Subscription> {
    private readonly projectLoader;
    private readonly repoRefResolver;
    private readonly goalSetter;
    readonly goalsListeners: GoalsSetListener[];
    private readonly implementationMapping;
    private readonly credentialsFactory;
    private readonly preferenceStoreFactory;
    private readonly enrichGoal;
    private readonly tagGoalSet;
    /**
     * Configure goal setting
     * @param projectLoader use to load projects
     * @param repoRefResolver used to resolve repos from GraphQL return
     * @param goalSetter
     * @param goalsListeners listener to goals set
     * @param implementationMapping
     * @param credentialsFactory credentials factory
     */
    constructor(projectLoader: ProjectLoader, repoRefResolver: RepoRefResolver, goalSetter: GoalSetter, goalsListeners: GoalsSetListener[], implementationMapping: GoalImplementationMapper, credentialsFactory: CredentialsResolver, preferenceStoreFactory: PreferenceStoreFactory, enrichGoal: EnrichGoal, tagGoalSet: TagGoalSet);
    handle(event: EventFired<OnPushToAnyBranch.Subscription>, context: HandlerContext): Promise<HandlerResult>;
}
//# sourceMappingURL=SetGoalsOnPush.d.ts.map