import { Hash } from "../commonTypes";
import { ContractWrapperFactory } from "../contractWrapperFactory";
import { ArcTransactionDataResult, ArcTransactionProposalResult, ArcTransactionResult, IContractWrapperFactory } from "../iContractWrapperBase";
import { VotableProposal } from "../proposalService";
import { TxGeneratingFunctionOptions } from "../transactionService";
import { EntityFetcherFactory, EventFetcherFactory } from "../web3EventService";
import { CancelProposalEventResult, CancelVotingEventResult, NewProposalEventResult, OwnerVoteOptions, ProposalIdOption, ProposeOptions, VoteOptions, VoteProposalEventResult, VoteWithSpecifiedAmountsOptions, VotingMachineExecuteProposalEventResult } from "./iIntVoteInterface";
import { IntVoteInterfaceWrapper } from "./intVoteInterface";
export declare class AbsoluteVoteWrapper extends IntVoteInterfaceWrapper {
    name: string;
    friendlyName: string;
    factory: IContractWrapperFactory<AbsoluteVoteWrapper>;
    /**
     * Events
     */
    NewProposal: EventFetcherFactory<NewProposalEventResult>;
    CancelProposal: EventFetcherFactory<CancelProposalEventResult>;
    ExecuteProposal: EventFetcherFactory<VotingMachineExecuteProposalEventResult>;
    VoteProposal: EventFetcherFactory<VoteProposalEventResult>;
    CancelVoting: EventFetcherFactory<CancelVotingEventResult>;
    /**
     * EntityFetcherFactory for votable proposals.
     * @param avatarAddress
     */
    readonly VotableAbsoluteVoteProposals: EntityFetcherFactory<VotableProposal, NewProposalEventResult>;
    setParameters(params: AbsoluteVoteParams): Promise<ArcTransactionDataResult<Hash>>;
    getParameters(paramsHash: Hash): Promise<AbsoluteVoteParamsResult>;
    propose(options: ProposeOptions & TxGeneratingFunctionOptions): Promise<ArcTransactionProposalResult>;
    vote(options: VoteOptions & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    voteWithSpecifiedAmounts(options: VoteWithSpecifiedAmountsOptions & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    execute(options: ProposalIdOption & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    cancelProposal(options: ProposalIdOption & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    ownerVote(options: OwnerVoteOptions & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    cancelVote(options: ProposalIdOption & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    protected hydrated(): void;
}
export declare const AbsoluteVoteFactory: ContractWrapperFactory<AbsoluteVoteWrapper>;
export interface AbsoluteVoteParams extends TxGeneratingFunctionOptions {
    ownerVote?: boolean;
    reputation: string;
    votePerc?: number;
}
export interface AbsoluteVoteParamsResult {
    ownerVote: boolean;
    reputation: string;
    votePerc: number;
}
