sig
  type t
  external make :
    int32 -> RejectedExecutionHandler.t -> ScheduledThreadPoolExecutor.t
    = "ocamljava_scheduledthreadpoolexecutor_make"
  external await_termination :
    ScheduledThreadPoolExecutor.t -> int64 -> TimeUnit.t -> bool
    = "ocamljava_threadpoolexecutor_await_termination"
  external get_active_count : ScheduledThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_active_count"
  external get_completed_task_count : ScheduledThreadPoolExecutor.t -> int64
    = "ocamljava_threadpoolexecutor_get_completed_task_count"
  external get_continue_existing_periodic_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool
    = "ocamljava_scheduledthreadpoolexecutor_get_continue_existing_periodic_tasks_after_shutdown_policy"
  external get_core_pool_size : ScheduledThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_core_pool_size"
  external get_execute_existing_delayed_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool
    = "ocamljava_scheduledthreadpoolexecutor_get_execute_existing_delayed_tasks_after_shutdown_policy"
  external get_keep_alive_time :
    ScheduledThreadPoolExecutor.t -> TimeUnit.t -> int64
    = "ocamljava_threadpoolexecutor_get_keep_alive_time"
  external get_largest_pool_size : ScheduledThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_largest_pool_size"
  external get_maximum_pool_size : ScheduledThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_maximum_pool_size"
  external get_pool_size : ScheduledThreadPoolExecutor.t -> int32
    = "ocamljava_threadpoolexecutor_get_pool_size"
  external get_rejected_execution_handler :
    ScheduledThreadPoolExecutor.t -> RejectedExecutionHandler.t
    = "ocamljava_threadpoolexecutor_get_rejected_execution_handler"
  external get_remove_on_cancel_policy :
    ScheduledThreadPoolExecutor.t -> bool
    = "ocamljava_scheduledthreadpoolexecutor_get_remove_on_cancel_policy"
  external get_task_count : ScheduledThreadPoolExecutor.t -> int64
    = "ocamljava_threadpoolexecutor_get_task_count"
  external invoke_all :
    ScheduledThreadPoolExecutor.t -> (unit -> 'a) list -> 'Future.t list
    = "ocamljava_threadpoolexecutor_invoke_all"
  external invoke_all_time :
    ScheduledThreadPoolExecutor.t ->
    (unit -> 'a) list -> int64 -> TimeUnit.t -> 'Future.t list
    = "ocamljava_threadpoolexecutor_invoke_all_time"
  external invoke_any :
    ScheduledThreadPoolExecutor.t -> (unit -> 'a) list -> 'a
    = "ocamljava_threadpoolexecutor_invoke_any"
  external invoke_any_time :
    ScheduledThreadPoolExecutor.t ->
    (unit -> 'a) list -> int64 -> TimeUnit.t -> 'a
    = "ocamljava_threadpoolexecutor_invoke_any_time"
  external is_shutdown : ScheduledThreadPoolExecutor.t -> bool
    = "ocamljava_threadpoolexecutor_is_shutdown"
  external is_terminated : ScheduledThreadPoolExecutor.t -> bool
    = "ocamljava_threadpoolexecutor_is_terminated"
  external is_terminating : ScheduledThreadPoolExecutor.t -> bool
    = "ocamljava_threadpoolexecutor_is_terminating"
  external schedule :
    ScheduledThreadPoolExecutor.t ->
    ('-> 'b) -> '-> int64 -> TimeUnit.t -> 'ScheduledFuture.t
    = "ocamljava_scheduledthreadpoolexecutor_schedule"
  external schedule_at_fixed_rate :
    ScheduledThreadPoolExecutor.t ->
    ('-> unit) ->
    '-> int64 -> int64 -> TimeUnit.t -> unit ScheduledFuture.t
    = "ocamljava_scheduledthreadpoolexecutor_schedule_at_fixed_rate"
    "ocamljava_scheduledthreadpoolexecutor_schedule_at_fixed_rate"
  external schedule_with_fixed_delay :
    ScheduledThreadPoolExecutor.t ->
    ('-> unit) ->
    '-> int64 -> int64 -> TimeUnit.t -> unit ScheduledFuture.t
    = "ocamljava_scheduledthreadpoolexecutor_schedule_with_fixed_delay"
    "ocamljava_scheduledthreadpoolexecutor_schedule_with_fixed_delay"
  external set_continue_existing_periodic_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool -> unit
    = "ocamljava_scheduledthreadpoolexecutor_set_continue_existing_periodic_tasks_after_shutdown_policy"
  external set_core_pool_size :
    ScheduledThreadPoolExecutor.t -> int32 -> unit
    = "ocamljava_threadpoolexecutor_set_core_pool_size"
  external set_execute_existing_delayed_tasks_after_shutdown_policy :
    ScheduledThreadPoolExecutor.t -> bool -> unit
    = "ocamljava_scheduledthreadpoolexecutor_set_execute_existing_delayed_tasks_after_shutdown_policy"
  external set_keep_alive_time :
    ScheduledThreadPoolExecutor.t -> int64 -> TimeUnit.t -> unit
    = "ocamljava_threadpoolexecutor_set_keep_alive_time"
  external set_maximum_pool_size :
    ScheduledThreadPoolExecutor.t -> int32 -> unit
    = "ocamljava_threadpoolexecutor_set_maximum_pool_size"
  external set_rejected_execution_handler :
    ScheduledThreadPoolExecutor.t -> RejectedExecutionHandler.t -> unit
    = "ocamljava_threadpoolexecutor_set_rejected_execution_handler"
  external set_remove_on_cancel_policy :
    ScheduledThreadPoolExecutor.t -> bool -> unit
    = "ocamljava_scheduledthreadpoolexecutor_set_remove_on_cancel_policy"
  external shutdown : ScheduledThreadPoolExecutor.t -> unit
    = "ocamljava_threadpoolexecutor_shutdown"
  external shutdown_now : ScheduledThreadPoolExecutor.t -> 'Future.t list
    = "ocamljava_threadpoolexecutor_shutdown_now"
  external submit :
    ScheduledThreadPoolExecutor.t -> ('-> 'b) -> '-> 'Future.t
    = "ocamljava_threadpoolexecutor_submit"
end