react-native-vision-camera
Version:
VisionCamera is the fastest and most powerful Camera for react-native.
39 lines (35 loc) • 1.36 kB
text/typescript
import type { SharedValue } from 'react-native-reanimated'
import type { CameraController } from '../specs/CameraController.nitro'
import type { ListenerSubscription } from '../specs/common-types/ListenerSubscription'
import type { NativeThread } from '../specs/frame-processors/NativeThread.nitro'
import type { AsyncRunner } from './AsyncRunner'
import type { RuntimeThread } from './RuntimeThread'
/**
* Provides an implementation for a separate Runtime/Thread.
* For example, Worklets.
*/
export interface RuntimeThreadProvider {
/**
* Create a new {@linkcode AsyncRunner}. An
* {@linkcode AsyncRunner} can be used to asynchronously
* run code in a Frame Processor.
*
* @see {@linkcode useAsyncRunner | useAsyncRunner()}
*/
createAsyncRunner(): AsyncRunner
/**
* Creates a new Runtime (exposed as a {@linkcode RuntimeThread})
* for the given {@linkcode NativeThread}.
*/
createRuntimeForThread(thread: NativeThread): RuntimeThread
/**
* Binds the given {@linkcode SharedValue} to the
* {@linkcode CameraController} on the UI Thread, and
* continuously update the controller via the {@linkcode funcName}.
*/
bindUIUpdatesToController(
value: SharedValue<number>,
controller: CameraController,
funcName: keyof Pick<CameraController, 'setExposureBias' | 'setZoom'>,
): ListenerSubscription
}