import BigNumber from "bignumber.js" ; import { Address , Hash } from "../commonTypes" ; import { ArcTransactionProposalResult , ArcTransactionResult } from "../iContractWrapperBase" ; import { TxGeneratingFunctionOptions } from "../transactionService" ; import { EventFetcherFactory } from "../web3EventService" ; /**
 * The Arc contract `IntVoteInterface`.
 */ export interface IIntVoteInterface { NewProposal : EventFetcherFactory < NewProposalEventResult > ; CancelProposal : EventFetcherFactory < CancelProposalEventResult > ; ExecuteProposal : EventFetcherFactory < ExecuteProposalEventResult > ; VoteProposal : EventFetcherFactory < VoteProposalEventResult > ; CancelVoting : EventFetcherFactory < CancelVotingEventResult > ; address : Address ; propose ( options ) : Promise < ArcTransactionProposalResult > ; cancelProposal ( options ) : Promise < ArcTransactionResult > ; ownerVote ( options ) : Promise < ArcTransactionResult > ; vote ( options ) : Promise < ArcTransactionResult > ; voteWithSpecifiedAmounts ( options ) : Promise < ArcTransactionResult > ; cancelVote ( options ) : Promise < ArcTransactionResult > ; getNumberOfChoices ( options ) : Promise < number > ; isVotable ( options ) : Promise < boolean > ; voteStatus ( options ) : Promise < BigNumber > ; isAbstainAllow ( ) : Promise < boolean > ; execute ( options ) : Promise < ArcTransactionResult > ; } export interface ProposeOptions { numOfChoices : number ; /**
     * Typically this is the avatar address, but you can pass any address here,
     * or null, This argument is used to link a proposal-creating scheme with an organisation.
     * If it is not given then it will be set to the `msg.sender`.
     */ organizationAddress ? : Address ; proposerAddress ? : Address ; proposalParameters : Hash ; } export interface OwnerVoteOptions extends ProposalIdOption { vote : number ; voterAddress : Address ; } export interface VoteOptions extends ProposalIdOption { vote : number ; voterAddress ? : Address ; } export interface VoteWithSpecifiedAmountsOptions extends ProposalIdOption { reputation : BigNumber | string ; vote : number ; voterAddress ? : Address ; } export interface VoteStatusOptions extends ProposalIdOption { vote : number ; } export interface ProposalIdOption { proposalId : Hash ; } export interface CancelProposalEventResult { /**
     * indexed
     */ _organization : Address ; /**
     * indexed
     */ _proposalId : Hash ; } export interface CancelVotingEventResult { /**
     * indexed
     */ _organization : Address ; /**
     * indexed
     */ _proposalId : Hash ; /**
     * indexed
     */ _voter : Address ; } export interface NewProposalEventResult { /**
     * indexed
     */ _organization : Address ; _numOfChoices : BigNumber ; _paramsHash : Hash ; /**
     * indexed
     */ _proposalId : Hash ; _proposer : Address ; } /**
 * fired by voting machines
 */ export interface ExecuteProposalEventResult { /**
     * indexed
     */ _organization : Address ; /**
     * the vote choice that won.
     */ _decision : BigNumber ; /**
     * indexed
     */ _proposalId : Hash ; /**
     * The total reputation in the DAO at the time the proposal was executed
     */ _totalReputation : BigNumber ; } export interface VoteProposalEventResult { /**
     * indexed
     */ _organization : Address ; /**
     * indexed
     */ _proposalId : Hash ; _reputation : BigNumber ; /**
     * The choice of vote
     */ _vote : BigNumber ; /**
     * indexed
     */ _voter : Address ; } export interface GetAllowedRangeOfChoicesResult { minVote : number ; maxVote : number ; }