sig
  type t = java'util'concurrent'ScheduledThreadPoolExecutor java_instance
  val make :
    core_pool_size:java_int ->
    RejectedExecutionHandler.t -> ScheduledThreadPoolExecutor.t
  val await_termination :
    ScheduledThreadPoolExecutor.t -> java_long -> TimeUnit.t -> bool
  val get_active_count : ScheduledThreadPoolExecutor.t -> java_int
  val get_completed_task_count : ScheduledThreadPoolExecutor.t -> java_long
  val get_continue_existing_periodic_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool
  val get_core_pool_size : ScheduledThreadPoolExecutor.t -> java_int
  val get_execute_existing_delayed_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool
  val get_keep_alive_time :
    ScheduledThreadPoolExecutor.t -> TimeUnit.t -> java_long
  val get_largest_pool_size : ScheduledThreadPoolExecutor.t -> java_int
  val get_maximum_pool_size : ScheduledThreadPoolExecutor.t -> java_int
  val get_pool_size : ScheduledThreadPoolExecutor.t -> java_int
  val get_rejected_execution_handler :
    ScheduledThreadPoolExecutor.t -> RejectedExecutionHandler.t
  val get_remove_on_cancel_policy : ScheduledThreadPoolExecutor.t -> bool
  val get_task_count : ScheduledThreadPoolExecutor.t -> java_long
  val invoke_all :
    ScheduledThreadPoolExecutor.t -> (unit -> 'a) list -> 'Future.t list
  val invoke_all_time :
    ScheduledThreadPoolExecutor.t ->
    (unit -> 'a) list -> java_long -> TimeUnit.t -> 'Future.t list
  val invoke_any : ScheduledThreadPoolExecutor.t -> (unit -> 'a) list -> 'a
  val invoke_any_time :
    ScheduledThreadPoolExecutor.t ->
    (unit -> 'a) list -> java_long -> TimeUnit.t -> 'a
  val is_shutdown : ScheduledThreadPoolExecutor.t -> bool
  val is_terminated : ScheduledThreadPoolExecutor.t -> bool
  val is_terminating : ScheduledThreadPoolExecutor.t -> bool
  val schedule :
    ScheduledThreadPoolExecutor.t ->
    ('-> 'b) -> '-> java_long -> TimeUnit.t -> 'ScheduledFuture.t
  val schedule_at_fixed_rate :
    ScheduledThreadPoolExecutor.t ->
    ('-> unit) ->
    '-> java_long -> java_long -> TimeUnit.t -> unit ScheduledFuture.t
  val schedule_with_fixed_delay :
    ScheduledThreadPoolExecutor.t ->
    ('-> unit) ->
    '-> java_long -> java_long -> TimeUnit.t -> unit ScheduledFuture.t
  val set_continue_existing_periodic_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool -> unit
  val set_core_pool_size : ScheduledThreadPoolExecutor.t -> java_int -> unit
  val set_execute_existing_delayed_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool -> unit
  val set_keep_alive_time :
    ScheduledThreadPoolExecutor.t -> java_long -> TimeUnit.t -> unit
  val set_maximum_pool_size :
    ScheduledThreadPoolExecutor.t -> java_int -> unit
  val set_rejected_execution_handler :
    ScheduledThreadPoolExecutor.t -> RejectedExecutionHandler.t -> unit
  val set_remove_on_cancel_policy :
    ScheduledThreadPoolExecutor.t -> bool -> unit
  val shutdown : ScheduledThreadPoolExecutor.t -> unit
  val shutdown_now : ScheduledThreadPoolExecutor.t -> 'Future.t list
  val submit :
    ScheduledThreadPoolExecutor.t -> ('-> 'b) -> '-> 'Future.t
  val null : ScheduledThreadPoolExecutor.t
  external is_null : ScheduledThreadPoolExecutor.t -> bool = "java is_null"
  external is_not_null : ScheduledThreadPoolExecutor.t -> bool
    = "java is_not_null"
  val wrap :
    ScheduledThreadPoolExecutor.t -> ScheduledThreadPoolExecutor.t option
  val unwrap :
    ScheduledThreadPoolExecutor.t option -> ScheduledThreadPoolExecutor.t
end