/**
 * Copyright (c) JOB TODAY S.A. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */
import { Animated, GestureResponderEvent, PanResponderGestureState, PanResponderInstance, NativeTouchEvent } from "react-native";
export declare const getImageDimensionsByTranslate: (translate: any, screen: any) => {
    width: number;
    height: number;
};
type CacheStorageItem = {
    key: string;
    value: any;
};
export declare const createCache: (cacheSize: number) => {
    _storage: CacheStorageItem[];
    get(key: string): any;
    set(key: string, value: any): void;
};
export declare const splitArrayIntoBatches: (arr: any[], batchSize: number) => any[];
export declare const getImageTransform: (image: any | null, screen: any) => readonly [] | readonly [{
    readonly x: any;
    readonly y: any;
}, number];
export declare const getImageStyles: (image: any | null, translate: Animated.ValueXY, scale?: Animated.Value) => {
    width: number;
    height: number;
    transform?: undefined;
} | {
    width: any;
    height: any;
    transform: [{
        translateX: Animated.Value;
    }, {
        translateY: Animated.Value;
    }];
};
export declare const getImageTranslate: (image: any, screen: any) => any;
export declare const getImageanyByTranslate: (translate: any, screen: any) => any;
export declare const getImageTranslateForScale: (currentTranslate: any, targetScale: number, screen: any) => any;
type HandlerType = (event: GestureResponderEvent, state: PanResponderGestureState) => void;
type PanResponderProps = {
    onGrant: HandlerType;
    onStart?: HandlerType;
    onMove: HandlerType;
    onRelease?: HandlerType;
    onTerminate?: HandlerType;
};
export declare const createPanResponder: ({ onGrant, onStart, onMove, onRelease, onTerminate, }: PanResponderProps) => PanResponderInstance;
export declare const getDistanceBetweenTouches: (touches: NativeTouchEvent[]) => number;
export declare const isPortrait: () => boolean;
/**
 * Return a timer for video from< time in seconds
 * ~~ is used as faster substitute for Math.floor() function
 * https://stackoverflow.com/questions/5971645/what-is-the-double-tilde-operator-in-javascript
 * @param time
 * @returns {string}
 */
export declare const secondToTime: (time: any) => string;
export declare const normalizeSeconds: (number: any) => string;
export {};
