import { Address, Hash, SchemePermissions, SchemeWrapper } from "../commonTypes";
import { ArcTransactionDataResult, ArcTransactionProposalResult, ContractWrapperBase, EventFetcherFactory, StandardSchemeParams } from "../contractWrapperBase";
import { ContractWrapperFactory } from "../contractWrapperFactory";
import { ProposalDeletedEventResult, ProposalExecutedEventResult } from "./commonEventInterfaces";
export declare class VoteInOrganizationSchemeWrapper extends ContractWrapperBase implements SchemeWrapper {
    name: string;
    friendlyName: string;
    factory: ContractWrapperFactory<VoteInOrganizationSchemeWrapper>;
    /**
     * Events
     */
    ProposalExecuted: EventFetcherFactory<ProposalExecutedEventResult>;
    ProposalDeleted: EventFetcherFactory<ProposalDeletedEventResult>;
    VoteOnBehalf: EventFetcherFactory<VoteOnBehalfEventResult>;
    proposeVote(options?: VoteInOrganizationProposeVoteConfig): Promise<ArcTransactionProposalResult>;
    setParameters(params: StandardSchemeParams): Promise<ArcTransactionDataResult<Hash>>;
    getDefaultPermissions(): SchemePermissions;
    getSchemePermissions(avatarAddress: Address): Promise<SchemePermissions>;
    getSchemeParameters(avatarAddress: Address): Promise<StandardSchemeParams>;
    getParameters(paramsHash: Hash): Promise<StandardSchemeParams>;
}
export declare const VoteInOrganizationSchemeFactory: ContractWrapperFactory<VoteInOrganizationSchemeWrapper>;
export interface VoteOnBehalfEventResult {
    _params: Array<Hash>;
}
export interface VoteInOrganizationProposeVoteConfig {
    /**
     * Avatar whose voters are being given the chance to vote on the original proposal.
     */
    avatar: Address;
    /**
     * Address of the voting machine used by the original proposal.  The voting machine must
     * implement IntVoteInterface (as defined in Arc).
     */
    originalIntVote: string;
    /**
     * Address of the "original" proposal for which the DAO's vote will cast.
     */
    originalProposalId: string;
}
