export interface LoggingMeterOptions { /**
     * Specifies how often logging meter information should be logged,
     * specified in millseconds.
     */ emitInterval ? : number ; } /**
 * Provides an interface for recording values.
 */ export interface ValueRecorder { param value recordValue ( value ) : void ; } /**
 * Providers an interface to create value recorders for recording metrics.
 */ export interface Meter { param name param tags valueRecorder ( name , tags ) : ValueRecorder ; } /**
 * Implements a no-op meter which performs no metrics instrumentation.  Note that
 * to reduce the performance impact of using this neter, this class is not
 * actually used by the SDK, and simply acts as a placeholder which triggers a
 * native implementation to be used instead.
 */ export class NoopMeter implements Meter { internal valueRecorder ( name , tags ) { name ; tags ; throw new Error ( 'invalid usage' ) ; } } /**
 * Implements a default meter which logs metrics on a regular basis.  Note that
 * to reduce the performance impact of using this neter, this class is not
 * actually used by the SDK, and simply acts as a placeholder which triggers a
 * native implementation to be used instead.
 */ export class LoggingMeter implements Meter { internal _options : LoggingMeterOptions ; constructor ( options ) { this . _options = options ; } internal valueRecorder ( name , tags ) { name ; tags ; throw new Error ( 'invalid usage' ) ; } }