import { Address, SchemePermissions } from "./commonTypes";
import { ContractWrapperBase } from "./contractWrapperBase";
import { ISchemeWrapper } from "./iContractWrapperBase";
/**
 * Abstract base class for all Arc scheme contract wrapper classes. A scheme is defined as an Arc
 * contract that can be registered with and can thus interact with a DAO controller.
 */
export declare abstract class SchemeWrapperBase extends ContractWrapperBase implements ISchemeWrapper {
    /**
     * Minimum permissions required by the scheme
     */
    getDefaultPermissions(): SchemePermissions;
    /**
     * Returns the scheme permissions.
     * @param avatarAddress
     */
    getSchemePermissions(avatarAddress: Address): Promise<SchemePermissions>;
    /**
     * Returns this scheme's permissions.
     * @param avatarAddress
     */
    protected _getSchemePermissions(avatarAddress: Address): Promise<SchemePermissions>;
}
