import { RepoContext } from "../context/SdmContext"; import { SdmGoalEvent } from "../goal/SdmGoalEvent"; /** * Represents a vote on a approval request */ export declare enum GoalApprovalRequestVote { /** * Voter decided to abstain from voting */ Abstain = "abstain", /** * Voter decided to grant the approval request */ Granted = "granted", /** * Voter decided to deny the approval request */ Denied = "denied" } /** * Result from executing GoalApprovalRequestVoter */ export interface GoalApprovalRequestVoteResult { /** * The vote */ vote: GoalApprovalRequestVote; /** * Optional text describing why the decision was being made */ reason?: string; } /** * Invocation of a GoalApprovalRequestVoter */ export interface GoalApprovalRequestVoterInvocation extends RepoContext { /** * Goal that was requested for approval */ goal: SdmGoalEvent; } /** * Voter on a request to approve a goal */ export declare type GoalApprovalRequestVoter = (garvi: GoalApprovalRequestVoterInvocation) => Promise; /** * Decide resulting vote on a set of votes */ export declare type GoalApprovalRequestVoteDecisionManager = (...votes: GoalApprovalRequestVoteResult[]) => GoalApprovalRequestVote; /** * Default GoalApprovalRequestVoteDecisionManager that decides unanimously on votes. * One denied vote will deny the approval request; all granted votes with grant the request. * All other votes with result in an abstained approval request. * @param votes */ export declare const UnanimousGoalApprovalRequestVoteDecisionManager: GoalApprovalRequestVoteDecisionManager; //# sourceMappingURL=goalApprovalRequestVote.d.ts.map