/// <reference path="../custom_typings/web3.d.ts" />
export * from "./accountService";
export * from "./avatarService";
export * from "./commonTypes";
export * from "./configService";
export { ContractWrappers, ContractWrapperFactories, ContractWrappersByType, ContractWrappersByAddress } from "./wrapperService";
export * from "./wrapperService";
export * from "./wrappers/absoluteVote";
export * from "./wrappers/commonEventInterfaces";
export * from "./wrappers/contributionReward";
export * from "./wrappers/daoCreator";
export * from "./wrappers/daoToken";
export * from "./wrappers/locking4Reputation";
export * from "./wrappers/lockingEth4Reputation";
export * from "./wrappers/lockingToken4Reputation";
export * from "./wrappers/fixedReputationAllocation";
export * from "./wrappers/externalLocking4Reputation";
export * from "./wrappers/auction4Reputation";
export * from "./wrappers/genesisProtocol";
export * from "./wrappers/globalConstraintRegistrar";
export * from "./wrappers/iBurnableToken";
export * from "./wrappers/iErc827Token";
export * from "./iConfigService";
export * from "./wrappers/iIntVoteInterface";
export * from "./wrappers/intVoteInterface";
export * from "./wrappers/redeemer";
export * from "./wrappers/reputation";
export * from "./wrappers/schemeRegistrar";
export * from "./wrappers/erc20";
export * from "./wrappers/tokenCapGC";
export * from "./wrappers/upgradeScheme";
export * from "./wrappers/vestingScheme";
export * from "./wrappers/voteInOrganizationScheme";
export * from "./iContractWrapperBase";
export * from "./dao";
export * from "./contractWrapperBase";
export * from "./schemeWrapperBase";
export * from "./uSchemeWrapperBase";
export * from "./contractWrapperFactory";
export * from "./pubSubEventService";
export * from "./web3EventService";
export * from "./proposalService";
export * from "./proposalGeneratorBase";
export * from "./loggingService";
export * from "./transactionService";
export * from "./utils";
import { Web3 } from "web3";
import { WrapperServiceInitializeOptions } from "./wrapperService";
/**
 * Options for [InitializeArcJs](/arc.js/api/README#initializearcjs)
 */
export interface InitializeArcOptions extends WrapperServiceInitializeOptions {
    /**
     * Optionally supply addresses to be used when calling WrapperFactory `.deployed()`.
     * The defaults come from [@daostack/migrations](https://github.com/daostack/migration).
     *
     * Should look like this:
     *
     * ```
     * {
     *  "private": {
     *    "base": {
     *       AbsoluteVote: "0x123...",
     *       DaoCreator: "0x123...",
     *       GenesisProtocol: "0x123...",
     *       .
     *       .
     *       .
     *     }
     *  },
     *  "kovan": {
     *     "base": {
     *       AbsoluteVote: "0x123...",
     *       DaoCreator: "0x123...",
     *       GenesisProtocol: "0x123...",
     *       .
     *       .
     *       .
     *     }
     *   }
     * }
     * ```
     */
    deployedContractAddresses?: any;
    /**
     * If `true` and `window.ethereum` is present, instantiate Web3 using it as the provider.
     * Ignored if `useWeb3` is given.
     * Default is true.
     */
    useMetamaskEthereumWeb3Provider?: boolean;
    /**
     * Name of the network for which to use the defaults found in Arc.js/truffle.js.
     * Overwrites config settings network, providerUrl and providerPort.
     * See [Network settings](/Configuration.md#networksettings) for more information.
     */
    useNetworkDefaultsFor?: string;
    /**
     * Optionally use the given Web3 instance, already initialized by a provider.
     * `useMetamaskEthereumWeb3Provider` is ignored if this is given.
     * Has the side-effect of setting `global.web3` to the given value.
     */
    useWeb3?: Web3;
    /**
     * Set to true to watch for changes in the current user account.
     * Default is false.
     * See [AccountService.initiateAccountWatch](/arc.js/api/classes/AccountService#initiateAccountWatch).
     */
    watchForAccountChanges?: boolean;
    /**
     * Set to true to watch for changes in the current blockchain network.
     * Default is false.
     * See [AccountService.initiateNetworkWatch](/arc.js/api/classes/AccountService#initiateNetworkWatch).
     */
    watchForNetworkChanges?: boolean;
}
/**
 * You must call `InitializeArcJs` before doing anything else with Arc.js.
 * Call it again whenever the current chain changes.
 * @returns Promise of the `Web3` object for the current chain.
 */
export declare function InitializeArcJs(options?: InitializeArcOptions): Promise<Web3>;
