import { Address, Hash, SchemePermissions } from '../commonTypes';
import { ContractWrapperFactory } from '../contractWrapperFactory';
import { ArcTransactionDataResult, IContractWrapperFactory, StandardSchemeParams } from '../iContractWrapperBase';
import { ProposalGeneratorBase } from '../proposalGeneratorBase';
import { TxGeneratingFunctionOptions } from '../transactionService';
export declare class GenericSchemeWrapper extends ProposalGeneratorBase {
    name: string;
    friendlyName: string;
    factory: IContractWrapperFactory<GenericSchemeWrapper>;
    getParametersHash(params: GenericSchemeParams): Promise<Hash>;
    setParameters(params: GenericSchemeParams & TxGeneratingFunctionOptions): Promise<ArcTransactionDataResult<Hash>>;
    getDefaultPermissions(): SchemePermissions;
    getSchemePermissions(avatarAddress: Address): Promise<SchemePermissions>;
    getSchemeParameters(avatarAddress: Address): Promise<GenericSchemeParams>;
    getParameters(paramsHash: Hash): Promise<GenericSchemeParams>;
}
export declare const GenericSchemeFactory: ContractWrapperFactory<GenericSchemeWrapper>;
export interface GenericSchemeParams extends StandardSchemeParams {
    contractToCall: Address;
}
