import { ScaledSize } from "react-native";
import { ChildrenCoords, DisplayInsets, Placement } from "./types";
export declare const ARROW_HEIGHT = 14;
export declare const EMPTY_SPACE = 8;
/**
 * @param displayInsets custom display insets
 * @returns An `object` based on `DEFAULT_INSETS` and `displayInsets`
 */
export declare const getDisplayInsets: (displayInsets: Partial<DisplayInsets>) => DisplayInsets;
/**
 *
 * @param placement The `Tooltip` placement
 * @returns The `Arrow` box `width` and `height` based on `placement` value
 */
export declare const getArrowBoxByPlacement: (placement: Placement) => {
    width: number;
    height: number;
};
/**
 * A utility function to calculate the `Tooltip` coordinates and dimensions
 * @param placement The `Tooltip` placement in relation of its children
 * @param childrenCoords The measures in screen of the `Tooltip` children
 * @param displayInsets The active display insets
 * @param screenDimensions The dimensions of the device screen
 * @returns The `Tooltip` coordinates
 */
export declare const getTooltipCoords: (placement: Placement, childrenCoords: ChildrenCoords, displayInsets: DisplayInsets, screenDimensions: ScaledSize) => {
    bottom: number;
    left: number;
    width: number;
    top?: undefined;
} | {
    top: number;
    left: number;
    width: number;
    bottom?: undefined;
} | {
    bottom?: undefined;
    left?: undefined;
    width?: undefined;
    top?: undefined;
};
/**
 * A utility function to calculate the `Tooltip`'s `Arrow` coordinates
 * @param placement The `Arrow` placement in relation of the `Tooltip` children
 * @param childrenCoords The measures in screen of the `Tooltip` children
 * @param screenDimensions The active display insets
 * @returns The `Tooltip`'s Arrow coordinates
 */
export declare const getArrowCoords: (placement: Placement, childrenCoords: ChildrenCoords, screenDimensions: ScaledSize) => {
    bottom: number;
    left: number;
    top?: undefined;
} | {
    top: number;
    left: number;
    bottom?: undefined;
} | {
    bottom?: undefined;
    left?: undefined;
    top?: undefined;
};
/**
 * A utility function to calculate the `Tooltip` vertical alignment
 * @param placement The `Tooltip` placement in relation of its children
 * @param childrenHeight The `Tooltip`'s children height
 * @param tooltipHeight The `Tooltip`'s height
 * @returns If placement is `left` or `right` it returns the vertical tranlsation to align the `Tooltip` center with its `children` center,
 * otherwise `null` is returned
 */
export declare const getTooltipVerticalAlignment: (placement: Placement, childrenHeight: number, tooltipHeight?: number) => {
    transform: {
        translateY: number;
    }[];
} | null;
/**
 * A utility function to calculate the `Arrow` vertical alignment
 * @param placement The `Tooltip` placement in relation of its children
 * @param childrenHeight The `Tooltip`'s children height
 */
export declare const getArrowVerticalAlignment: (placement: Placement, childrenHeight: number) => {
    transform: {
        translateY: number;
    }[];
} | null;
export declare const isDefined: <T>(v: T) => v is T & ({} | null);
export declare const isNotZero: (v: number) => boolean;
//# sourceMappingURL=index.d.ts.map