import { Address } from "./commonTypes";
import { ContractWrapperBase } from "./contractWrapperBase";
import { ContractWrapperFactory } from "./contractWrapperFactory";
import { ProposalService } from "./proposalService";
import { Web3EventService } from "./web3EventService";
import { IntVoteInterfaceWrapper } from "./wrappers/intVoteInterface";
export declare abstract class ProposalGeneratorBase extends ContractWrapperBase {
    protected proposalService: ProposalService;
    protected votingMachineFactory: ContractWrapperFactory<IntVoteInterfaceWrapper>;
    constructor(solidityContract: any, web3EventService: Web3EventService);
    /**
     * Return the address of the voting machine for this scheme as registered with the given avatar.
     * @param avatarAddress
     */
    getVotingMachineAddress(avatarAddress: Address): Promise<Address>;
    /**
     * Return IntVoteInterfaceWrapper for this scheme as registered with the given avatar.
     * @param avatarAddress
     */
    getVotingMachine(avatarAddress: Address): Promise<IntVoteInterfaceWrapper>;
}
