import { p2p as P2P } from './Wrapper';
import Crypto from '../crypto';
import Logger from '../logger';
import { NetworkClass } from '../network';
import Shardus from '../shardus';
import * as ShardusTypes from '../shardus/shardus-types';
import StateManager from '../state-manager';
import Storage from '../storage';
import Reporter from '../reporter';
import SocketIO from 'socket.io';
export type P2PModuleContext = typeof P2P;
export declare let p2p: P2PModuleContext;
export declare let logger: Logger;
export declare let crypto: Crypto;
export declare let network: NetworkClass;
export declare let shardus: Shardus;
export declare let stateManager: StateManager;
export declare let storage: Storage;
export declare let io: SocketIO.Server;
export declare let config: ShardusTypes.StrictServerConfiguration | undefined;
export declare let defaultConfigs: ShardusTypes.StrictShardusConfiguration;
export declare let reporter: Reporter;
export declare function setP2pContext(context: P2PModuleContext): void;
export declare function setLoggerContext(context: any): void;
export declare function setCryptoContext(context: any): void;
export declare function setNetworkContext(context: any): void;
export declare function setShardusContext(context: any): void;
export declare function setStateManagerContext(context: any): void;
export declare function setStorageContext(context: any): void;
export declare function setIOContext(context: any): void;
export declare function setReporterContext(context: any): void;
export declare function setConfig(conf: ShardusTypes.StrictServerConfiguration): void;
export declare function setDefaultConfigs(conf: any): void;
