import Web3 = require('web3');
import { AccountStore, ContractLoader, DfsInterface, EventHub, Executor, Ipfs, KeyProvider } from '@evan.network/dbcp';
import { BaseContract } from '../contracts/base-contract/base-contract';
import { Claims } from '../claims/claims';
import { CryptoProvider } from '../encryption/crypto-provider';
import { DataContract } from '../contracts/data-contract/data-contract';
import { ExecutorWallet } from '../contracts/executor-wallet';
import { Ipld } from '../dfs/ipld';
import { NameResolver } from '../name-resolver';
import { Profile } from '../profile/profile';
import { RightsAndRoles } from '../contracts/rights-and-roles';
import { ServiceContract } from '../contracts/service-contract/service-contract';
import { Description } from '../shared-description';
import { Sharing } from '../contracts/sharing';
import { Wallet } from '../contracts/wallet';
export declare const publicMailBoxExchange = "mailboxKeyExchange";
export declare const sampleContext = "context sample";
export declare class TestUtils {
    static getAccountStore(options: any): AccountStore;
    static getBaseContract(web3: any): Promise<BaseContract>;
    static getClaims(web3: any): Promise<Claims>;
    static getConfig(): any;
    static getContractLoader(web3: any): Promise<ContractLoader>;
    static getContracts(): Promise<any>;
    static getCryptoProvider(): CryptoProvider;
    static getDataContract(web3: any, dfs: any): Promise<DataContract>;
    static getDescription(web3: any, dfsParam?: DfsInterface): Promise<Description>;
    static getEventHub(web3: any): Promise<EventHub>;
    static getExecutor(web3: any, isReadonly?: any): Promise<Executor>;
    static getExecutorWallet(web3: any, wallet: any, dfsParam?: DfsInterface): Promise<ExecutorWallet>;
    static getIpld(_ipfs?: Ipfs, _keyProvider?: KeyProvider): Promise<Ipld>;
    static getIpfs(): Promise<Ipfs>;
    static getKeyProvider(requestedKeys?: string[]): KeyProvider;
    static getKeys(): any;
    static getLogger(): Function;
    static getNameResolver(web3: any): Promise<NameResolver>;
    static getProfile(web3: any, ipfs?: any, ipld?: any, accountId?: any): Promise<Profile>;
    static getRightsAndRoles(web3: any): Promise<RightsAndRoles>;
    static getServiceContract(web3: any, ipfs?: Ipfs, keyProvider?: KeyProvider): Promise<ServiceContract>;
    static getSharing(web3: any, dfsParam?: DfsInterface): Promise<Sharing>;
    static getWallet(web3: any, dfsParam?: DfsInterface): Promise<Wallet>;
    static getWeb3(provider?: string): Web3;
}
