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 { GoalImplementationMapper } from "../../../../../api/goal/support/GoalImplementationMapper";
import { SoftwareDeliveryMachineConfiguration } from "../../../../../api/machine/SoftwareDeliveryMachineOptions";
import { GoalApprovalRequestVoteDecisionManager, GoalApprovalRequestVoter } from "../../../../../api/registration/goalApprovalRequestVote";
import { CredentialsResolver } from "../../../../../spi/credentials/CredentialsResolver";
import { RepoRefResolver } from "../../../../../spi/repo-ref/RepoRefResolver";
import { OnAnyApprovedSdmGoal } from "../../../../../typings/types";
/**
 * Vote on approved goals.
 *
 * This allows GoalApprovalVoter instances to vote on the approved goal to decide
 * if this approval request can be granted or not.
 *
 * The final decision if the request should be granted based on all votes is delegated to the
 * configured instance of GoalApprovalRequestVoteDecisionManager.
 */
export declare class VoteOnGoalApprovalRequest implements HandleEvent<OnAnyApprovedSdmGoal.Subscription> {
    private readonly repoRefResolver;
    private readonly credentialsFactory;
    private readonly voters;
    private readonly decisionManager;
    private readonly implementationMapper;
    private readonly preferenceStoreFactory;
    configuration: SoftwareDeliveryMachineConfiguration;
    constructor(repoRefResolver: RepoRefResolver, credentialsFactory: CredentialsResolver, voters: GoalApprovalRequestVoter[], decisionManager: GoalApprovalRequestVoteDecisionManager, implementationMapper: GoalImplementationMapper, preferenceStoreFactory: PreferenceStoreFactory);
    handle(event: EventFired<OnAnyApprovedSdmGoal.Subscription>, context: HandlerContext): Promise<HandlerResult>;
}
//# sourceMappingURL=VoteOnGoalApprovalRequest.d.ts.map