import { DeveloperProvider , PrivateNetworkSettings } from '@neo-one/client-common' ; /**
 * Client which controls a development network.
 */ export class DeveloperClient { private readonly developerProvider : DeveloperProvider ; private mutableRunConsensusNow : Promise < void > | undefined ; public constructor ( developerProvider ) { this . developerProvider = developerProvider ; } /**
     * Trigger consensus to run immediately.
     */ public async runConsensusNow ( ) { if ( this . mutableRunConsensusNow === undefined ) { this . mutableRunConsensusNow = this . runConsensusNowInternal ( ) ; } return this . mutableRunConsensusNow ; } /**
     * Update settings for the private network.
     */ public async updateSettings ( options ) { await this . developerProvider . updateSettings ( options ) ; } /**
     * Get the current settings of the private network.
     */ public async getSettings ( ) { return this . developerProvider . getSettings ( ) ; } /**
     * Fast forward the local network by `seconds` into the future.
     */ public async fastForwardOffset ( seconds ) { await this . developerProvider . fastForwardOffset ( seconds ) ; await this . runConsensusNow ( ) ; } /**
     * Fast forward to a particular unix timestamp in the future.
     */ public async fastForwardToTime ( seconds ) { await this . developerProvider . fastForwardToTime ( seconds ) ; await this . runConsensusNow ( ) ; } /**
     * Reset the local network to it's initial state starting at the genesis block.
     */ public async reset ( ) { await this . developerProvider . reset ( ) ; } /**
     * Fetch the NEO Tracker URL for the project.
     */ public async getNEOTrackerURL ( ) { return this . developerProvider . getNEOTrackerURL ( ) ; } /**
     * Reset the project this network is associated with to it's initial state.
     */ public async resetProject ( ) { await this . developerProvider . resetProject ( ) ; } private async runConsensusNowInternal ( ) { await this . developerProvider . runConsensusNow ( ) ; this . mutableRunConsensusNow = undefined ; } } /**
 * An object of `DeveloperClient`s.
 */ export interface DeveloperClients { readonly [ network ] : DeveloperClient ; }