/**
 * @license
 * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
 * The Universal Permissive License (UPL), Version 1.0
 * as shown at https://oss.oracle.com/licenses/upl/
 * @ignore
 */
import type { RefObject } from 'preact';
import { ReferenceLine } from "../utils/UNSAFE_meterUtils";
import { Size } from "../utils/UNSAFE_size";
type Dimensions = {
    width: number;
    height: number;
};
/**
 * Returns the metric value of the clicked point.
 * @param event The PointerEvent
 * @param dimensionsRef RefObject to stored dimensions of the meter bar.
 * @param min The minimum value of the meter bar.
 * @param max The maximum value of the meter bar.
 * @param step The step value of the meter bar.
 * @param orientation The orientation of the meter bar.
 * @param isRtl Whether the reading mode is 'rtl'
 * @returns The metric value of the clicked point.
 */
export declare function getValue(event: PointerEvent, dimensionsRef: RefObject<Dimensions>, min: number, max: number, step: number, orientation?: 'horizontal' | 'vertical', isRtl?: boolean): number | undefined;
/**
 * Returns the true dimension of the meter bar after first render. All dimensions are 0 for initial render.
 * @param element The meter bar track HTML element
 * @returns The dimension of the meter bar.
 */
export declare function getDimensions(element: HTMLElement | null): Dimensions;
/**
 * Returns object with 'start' and 'end' keys. Value for each key will be true if at least one ref line with correposnding position is present in meter bar.
 * @param lines The array of reference lines.
 * @returns Returns object with start and end keys.
 */
export declare function getRefLinesInfo(lines?: ReferenceLine[]): {
    start: boolean;
    end: boolean;
};
export declare const getMarginClass: (info: {
    start: boolean;
    end: boolean;
}, isHoriz: boolean, barTrackMarginTopStyle: string, barTrackMarginStartStyle: string, barTrackMarginBottomStyle: string, barTrackMarginEndStyle: string) => string[];
export declare const getFitMarginClass: (info: {
    start: boolean;
    end: boolean;
}, isHoriz: boolean, barTrackMarginTopFitStyle: string, barTrackMarginStartFitStyle: string, barTrackMarginBottomFitStyle: string, barTrackMarginEndFitStyle: string) => string[];
export declare const getFitTrackWidth: (info: {
    start: boolean;
    end: boolean;
}, maxLabelWidth: number, width?: number, isHoriz?: boolean) => number | undefined;
export declare const getFitTrackHeight: (info: {
    start: boolean;
    end: boolean;
}, maxLabelHeight: number, height?: number, isHoriz?: boolean) => number | undefined;
export declare const getFitMarginStyle: (maxLabelWidth: number, maxLabelHeight: number, isHoriz: boolean) => string;
/**
 * Returns the translation offset for the reference line label
 */
export declare function getReferenceLineLabelTranslationOffset(isLeft: boolean, isBottom: boolean, isHoriz: boolean, isRtl: boolean, isStartPos: boolean, length?: string, size?: string): string;
/**
 * Returns the margin needed to accomodate reference line and label in a sized meter circle.
 */
export declare function getSizedMargin(info: {
    start: boolean;
    end: boolean;
}, isHoriz: boolean, hasReferenceLine: boolean, hasReferenceLineLabel: boolean, maxRefLabelDims: {
    width: number;
    height: number;
}): string | undefined;
export declare function getComponentStyle(isFit: boolean, isHoriz: boolean, length: Size, maxRefLabelDims: {
    width: number;
    height: number;
}, fitTrackHeight?: number, fitTrackWidth?: number): {
    width: string | number | undefined;
    height: string | number | undefined;
    margin: string | undefined;
};
export declare function getReferenceLineAlignmentStyle(isLeft: boolean, isRtl: boolean, maxLabelWidth: number, percentage: number): {
    left: string | undefined;
    right: string | undefined;
};
export declare function getReferenceLineTranslation(isHoriz: boolean, isRtl: boolean, percent: number): "3px" | "0 3px" | "-2px" | "0 2px" | "1px 0" | "-1px 0" | "0 -1px" | "0 1px" | undefined;
export declare function getReferenceLinePosition(isHoriz: boolean, isLeft: boolean, isBottom: boolean, isRtl: boolean, percent: number, maxLabelWidth: number, maxLabelHeight: number): {
    bottom: string | undefined;
    top: string | undefined;
    maxWidth: string | undefined;
    left?: string | undefined;
    right?: string | undefined;
};
export {};
