import { AccountStore, ContractLoader, DfsInterface, EventHub, Executor, KeyProvider, SignerInterface } from '@evan.network/dbcp';
import { BaseContract } from './contracts/base-contract/base-contract';
import { CryptoProvider } from './encryption/crypto-provider';
import { DataContract } from './contracts/data-contract/data-contract';
import { Description } from './shared-description';
import { Ipld } from './dfs/ipld';
import { KeyExchange } from './keyExchange';
import { Mailbox } from './mailbox';
import { NameResolver } from './name-resolver';
import { Onboarding } from './onboarding';
import { Profile } from './profile/profile';
import { RightsAndRoles } from './contracts/rights-and-roles';
import { ServiceContract } from './contracts/service-contract/service-contract';
import { Sharing } from './contracts/sharing';
/**
 * runtime for interacting with dbcp, including helpers for transactions & co
 */
export interface Runtime {
    accountStore: AccountStore;
    activeAccount: string;
    baseContract: BaseContract;
    contractLoader: ContractLoader;
    cryptoProvider: CryptoProvider;
    description: Description;
    dataContract: DataContract;
    dfs: DfsInterface;
    eventHub: EventHub;
    executor: Executor;
    ipld: Ipld;
    keyExchange: KeyExchange;
    keyProvider: KeyProvider;
    mailbox: Mailbox;
    nameResolver: NameResolver;
    onboarding: Onboarding;
    profile: Profile;
    rightsAndRoles: RightsAndRoles;
    serviceContract: ServiceContract;
    sharing: Sharing;
    signer: SignerInterface;
    web3: any;
}
/**
 * create new runtime instance
 *
 * @param      {any}               web3           connected web3 instance
 * @param      {DfsInterface}      dfs            interface for retrieving file from dfs
 * @param      {any}               runtimeConfig  configuration values
 * @return     {Promise<Runtime>}  runtime instance
 */
export declare function createDefaultRuntime(web3: any, dfs: DfsInterface, runtimeConfig: any): Promise<Runtime>;
