import type { HybridObject } from 'react-native-nitro-modules';
import type { CameraController } from '../CameraController.nitro';
/**
 * A {@linkcode GestureController} is a controller
 * that can control a {@linkcode CameraController}'s
 * property via a user gesture.
 *
 * For example, a {@linkcode ZoomGestureController}
 * uses a pinch gesture to modify the {@linkcode CameraController}'s
 * {@linkcode CameraController.zoom | zoom} property.
 *
 * The {@linkcode GestureController} needs to be attached
 * to a View (like a {@linkcode PreviewView}) to enable
 * the gesture.
 */
export interface GestureController extends HybridObject<{
    ios: 'swift';
    android: 'kotlin';
}> {
    /**
     * Gets or sets the {@linkcode CameraController}
     * this {@linkcode GestureController} should
     * control.
     */
    controller: CameraController | undefined;
}
