import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
/**
 * This component generates a visualization that displays a percentage value
 * alongside a horizontal bar showing the percentage visually.
 *
 * It can be used to display completion rates, usage metrics, or any other
 * value that can be represented as a percentage.
 *
 * The component is designed to be used in read-only contexts, such as displaying
 * field values in a CRM object card.
 *
 * :::note
 * The percentage visualizer displays only one digit after the decimal point!
 * :::
 *
 * @exampleComponent limebb-percentage-visualizer-basic
 * @exampleComponent limebb-percentage-visualizer-multiplier
 * @exampleComponent limebb-percentage-visualizer-range
 * @exampleComponent limebb-percentage-visualizer-reduce-presence
 * @exampleComponent limebb-percentage-visualizer-colors
 * @exampleComponent limebb-percentage-visualizer-locale
 * @exampleComponent limebb-percentage-visualizer-composite
 * @beta
 */
export declare class PercentageVisualizer implements LimeWebComponent {
    /**
     * @inherit
     */
    platform: LimeWebComponentPlatform;
    /**
     * @inherit
     */
    context: LimeWebComponentContext;
    /**
     * Preferably a number (or a string that can be converted to a number
     * by the component) that represents the percentage value.
     */
    value: number | string;
    /**
     * The maximum value of the visualization range.
     * This defines the upper bound of the scale used for visualization.
     * Must be greater than rangeMin.
     */
    rangeMax: number;
    /**
     * The minimum value of the visualization range.
     * This defines the lower bound of the scale used for visualization.
     * Must be less than rangeMax.
     */
    rangeMin: number;
    /**
     * A multiplier factor to convert input values to percentages.
     * For example, if your input is 0.75 and you want to display it as 75%, use a multiplier of 100.
     */
    multiplier: number;
    /**
     * The label of the field.
     * Will be displayed as a floating label on top,
     * mimicking other form elements, such as input fields.
     */
    label?: string;
    /**
     * Set to `true` to indicate that the current value is invalid.
     */
    invalid?: boolean;
    /**
     * Set to `true` to render an asterisk beside the label,
     * only visually indicating that the field is required.
     * Useful when the component is used as a from field on cards.
     */
    required?: boolean;
    /**
     * Optional helper text to display below the field when it is focused.
     * The helper text also appears when the component is `invalid`.
     */
    helperText?: string;
    /**
     * When set to `false`, if the `value` equals `0` or there is no value
     * (_undefined_, _null_ or empty string), the component will
     * render the visualization. See the examples for more details.
     */
    reducePresence?: boolean | undefined;
    /**
     * When set to `true`, makes the filled section showing the percentage colorful.
     * Colors change follow Lime CRM's conventions:
     * - with intervals of 10%, from 0% to 100% (when the range doesn't start with a negative value).
     * - with intervals of 20%, from -200% to +200% (when the range starts with a negative value).
     */
    displayPercentageColors?: boolean | undefined;
    private numValue;
    private locale;
    private numberFormat;
    valueChanged(newValue: number | string): void;
    private labelId;
    private helperTextId;
    private zeroPointId;
    componentWillLoad(): void;
    componentDidLoad(): void;
    componentWillUpdate(): void;
    private triggerRangeWarning;
    render(): any;
    private renderVisualization;
    private renderZeroPoint;
    private renderHelperLine;
    private hasHelperText;
    private hasValue;
    private getContainerClassList;
    private getZeroPointPosition;
    private getNormalizedValue;
    private multiplyByMultiplier;
    private roundValue;
    private unifyMinusSign;
    private convertToUnicodeMinus;
    private parseValue;
    private formatValue;
}
//# sourceMappingURL=percentage-visualizer.d.ts.map