import { Address, Hash, VoteConfig } from "../commonTypes";
import { ArcTransactionDataResult, ArcTransactionResult, ContractWrapperBase, EventFetcherFactory } from "../contractWrapperBase";
import { ContractWrapperFactory } from "../contractWrapperFactory";
import { ExecuteProposalEventResult, NewProposalEventResult, VoteProposalEventResult } from "./commonEventInterfaces";
export declare class AbsoluteVoteWrapper extends ContractWrapperBase {
    name: string;
    friendlyName: string;
    factory: ContractWrapperFactory<AbsoluteVoteWrapper>;
    /**
     * Events
     */
    NewProposal: EventFetcherFactory<NewProposalEventResult>;
    CancelProposal: EventFetcherFactory<CancelProposalEventResult>;
    ExecuteProposal: EventFetcherFactory<ExecuteProposalEventResult>;
    VoteProposal: EventFetcherFactory<VoteProposalEventResult>;
    CancelVoting: EventFetcherFactory<CancelVotingEventResult>;
    /**
     * Vote on a proposal
     * @param {VoteConfig} options
     * @returns Promise<ArcTransactionResult>
     */
    vote(options?: VoteConfig): Promise<ArcTransactionResult>;
    setParameters(params: AbsoluteVoteParams): Promise<ArcTransactionDataResult<Hash>>;
    getParameters(paramsHash: Hash): Promise<AbsoluteVoteParamsResult>;
}
export declare const AbsoluteVoteFactory: ContractWrapperFactory<AbsoluteVoteWrapper>;
export interface CancelProposalEventResult {
    /**
     * indexed
     */
    _proposalId: Hash;
}
export interface CancelVotingEventResult {
    /**
     * indexed
     */
    _proposalId: Hash;
    _voter: Address;
}
export interface AbsoluteVoteParams {
    ownerVote?: boolean;
    reputation: string;
    votePerc?: number;
}
export interface AbsoluteVoteParamsResult {
    ownerVote: boolean;
    reputation: string;
    votePerc: number;
}
