text: //
  //  Generated by the J2ObjC translator.  DO NOT EDIT!
  //  source: /Users/ex3ndr/Develop/actor-platform/actor-apps/core/src/main/java/im/actor/model/droidkit/actors/Environment.java
  //
  
  #ifndef _DKEnvironment_H_
  #define _DKEnvironment_H_
  
  #include "J2ObjC_header.h"
  
  @class AMAbsTimerCompat;
  @class AMAtomicIntegerCompat;
  @class AMAtomicLongCompat;
  @class AMThreadLocalCompat;
  @class DKActorDispatcher;
  @class DKActorSystem;
  @class DKThreadPriorityEnum;
  @protocol AMDispatcherProvider;
  @protocol AMThreadingProvider;
  @protocol JavaLangRunnable;
  
  @interface DKEnvironment : NSObject
  
  #pragma mark Public
  
  - (instancetype)init;
  
  + (AMAtomicIntegerCompat *)createAtomicIntWithInt:(jint)init_;
  
  + (AMAtomicLongCompat *)createAtomicLongWithLong:(jlong)init_;
  
  + (DKActorDispatcher *)createDefaultDispatcherWithNSString:(NSString *)name
                                    withDKThreadPriorityEnum:(DKThreadPriorityEnum *)priority
                                           withDKActorSystem:(DKActorSystem *)actorSystem;
  
  + (DKActorDispatcher *)createDispatcherWithNSString:(NSString *)name
                                              withInt:(jint)threadsCount
                             withDKThreadPriorityEnum:(DKThreadPriorityEnum *)priority
                                    withDKActorSystem:(DKActorSystem *)actorSystem;
  
  + (AMThreadLocalCompat *)createThreadLocal;
  
  + (AMAbsTimerCompat *)createTimerWithJavaLangRunnable:(id<JavaLangRunnable>)runnable;
  
  + (void)dispatchCallbackWithJavaLangRunnable:(id<JavaLangRunnable>)runnable;
  
  + (jlong)getActorTime;
  
  + (jlong)getCurrentSyncedTime;
  
  + (jlong)getCurrentTime;
  
  + (void)setDispatcherProviderWithAMDispatcherProvider:(id<AMDispatcherProvider>)dispatcherProvider;
  
  + (void)setThreadingProviderWithAMThreadingProvider:(id<AMThreadingProvider>)threadingProvider;
  
  @end
  
  J2OBJC_EMPTY_STATIC_INIT(DKEnvironment)
  
  FOUNDATION_EXPORT void DKEnvironment_setThreadingProviderWithAMThreadingProvider_(id<AMThreadingProvider> threadingProvider);
  
  FOUNDATION_EXPORT void DKEnvironment_setDispatcherProviderWithAMDispatcherProvider_(id<AMDispatcherProvider> dispatcherProvider);
  
  FOUNDATION_EXPORT void DKEnvironment_dispatchCallbackWithJavaLangRunnable_(id<JavaLangRunnable> runnable);
  
  FOUNDATION_EXPORT DKActorDispatcher *DKEnvironment_createDefaultDispatcherWithNSString_withDKThreadPriorityEnum_withDKActorSystem_(NSString *name, DKThreadPriorityEnum *priority, DKActorSystem *actorSystem);
  
  FOUNDATION_EXPORT DKActorDispatcher *DKEnvironment_createDispatcherWithNSString_withInt_withDKThreadPriorityEnum_withDKActorSystem_(NSString *name, jint threadsCount, DKThreadPriorityEnum *priority, DKActorSystem *actorSystem);
  
  FOUNDATION_EXPORT jlong DKEnvironment_getActorTime();
  
  FOUNDATION_EXPORT jlong DKEnvironment_getCurrentTime();
  
  FOUNDATION_EXPORT jlong DKEnvironment_getCurrentSyncedTime();
  
  FOUNDATION_EXPORT AMAtomicIntegerCompat *DKEnvironment_createAtomicIntWithInt_(jint init_);
  
  FOUNDATION_EXPORT AMAtomicLongCompat *DKEnvironment_createAtomicLongWithLong_(jlong init_);
  
  FOUNDATION_EXPORT AMThreadLocalCompat *DKEnvironment_createThreadLocal();
  
  FOUNDATION_EXPORT AMAbsTimerCompat *DKEnvironment_createTimerWithJavaLangRunnable_(id<JavaLangRunnable> runnable);
  
  FOUNDATION_EXPORT void DKEnvironment_init(DKEnvironment *self);
  
  FOUNDATION_EXPORT DKEnvironment *new_DKEnvironment_init() NS_RETURNS_RETAINED;
  
  J2OBJC_TYPE_LITERAL_HEADER(DKEnvironment)
  
  typedef DKEnvironment ImActorModelDroidkitActorsEnvironment;
  
  #endif // _DKEnvironment_H_
  