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 GlobalConstraintRegistrarWrapper extends ContractWrapperBase implements SchemeWrapper {
    name: string;
    friendlyName: string;
    factory: ContractWrapperFactory<GlobalConstraintRegistrarWrapper>;
    /**
     * Events
     */
    NewGlobalConstraintsProposal: EventFetcherFactory<NewGlobalConstraintsProposalEventResult>;
    RemoveGlobalConstraintsProposal: EventFetcherFactory<RemoveGlobalConstraintsProposalEventResult>;
    ProposalExecuted: EventFetcherFactory<ProposalExecutedEventResult>;
    ProposalDeleted: EventFetcherFactory<ProposalDeletedEventResult>;
    proposeToAddModifyGlobalConstraint(options?: ProposeToAddModifyGlobalConstraintParams): Promise<ArcTransactionProposalResult>;
    proposeToRemoveGlobalConstraint(options?: ProposeToRemoveGlobalConstraintParams): 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 GlobalConstraintRegistrarFactory: ContractWrapperFactory<GlobalConstraintRegistrarWrapper>;
export interface NewGlobalConstraintsProposalEventResult {
    /**
     * indexed
     */
    _avatar: Address;
    /**
     * indexed
     */
    _intVoteInterface: Address;
    _gc: Address;
    _params: Hash;
    /**
     * indexed
     */
    _proposalId: Hash;
    _voteToRemoveParams: Hash;
}
export interface RemoveGlobalConstraintsProposalEventResult {
    /**
     * indexed
     */
    _avatar: Address;
    _gc: Address;
    /**
     * indexed
     */
    _intVoteInterface: Address;
    /**
     * indexed
     */
    _proposalId: Hash;
}
export interface ProposeToAddModifyGlobalConstraintParams {
    /**
     * avatar address
     */
    avatar: Address;
    /**
     *  the address of the global constraint to add
     */
    globalConstraint: string;
    /**
     * hash of the parameters of the global contraint
     */
    globalConstraintParametersHash: string;
    /**
     * voting machine to use when voting to remove the global constraint
     */
    votingMachineHash: string;
}
export interface ProposeToRemoveGlobalConstraintParams {
    /**
     * avatar address
     */
    avatar: Address;
    /**
     *  the address of the global constraint to remove
     */
    globalConstraint: string;
}
