import { type SharedValue } from 'react-native-reanimated';
import { type GestureUpdateEvent, type PinchGestureHandlerEventPayload } from 'react-native-gesture-handler';
import { ScaleMode, PinchCenteringMode, type BoundsFuction, type SizeVector, type Vector, type PinchGestureEventCallback, type PinchGestureEvent } from '../types';
type PinchOptions = {
    container: SizeVector<SharedValue<number>>;
    detectorTranslate: Vector<SharedValue<number>>;
    detectorScale: SharedValue<number>;
    translate: Vector<SharedValue<number>>;
    origin: Vector<SharedValue<number>>;
    offset: Vector<SharedValue<number>>;
    delta: Vector<SharedValue<number>>;
    scale: SharedValue<number>;
    scaleOffset: SharedValue<number>;
    scaleMode: ScaleMode;
    minScale: number;
    maxScale: SharedValue<number>;
    boundFn: BoundsFuction;
    pinchCenteringMode: PinchCenteringMode;
    allowPinchPanning: boolean;
    userCallbacks: Partial<{
        onGestureEnd: () => void;
        onPinchStart: PinchGestureEventCallback;
        onPinchEnd: PinchGestureEventCallback;
    }>;
};
type PinchGestueUpdateEvent = GestureUpdateEvent<PinchGestureHandlerEventPayload>;
export declare const usePinchCommons: (options: PinchOptions) => {
    gesturesEnabled: boolean;
    onPinchStart: (e: PinchGestureEvent) => void;
    onPinchUpdate: (e: PinchGestueUpdateEvent) => void;
    onPinchEnd: (e: PinchGestureEvent) => void;
};
export {};
//# sourceMappingURL=usePinchCommons.d.ts.map