import { EventFired, HandlerContext, HandlerResult } from "@atomist/automation-client";
import { HandleEvent } from "@atomist/automation-client/lib/HandleEvent";
import { CredentialsResolver, GoalApprovalRequestVoteDecisionManager, GoalApprovalRequestVoter, GoalImplementationMapper, PreferenceStoreFactory, RepoRefResolver, SoftwareDeliveryMachineConfiguration } from "@atomist/sdm";
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