import { PropertyValues } from 'lit';
import { UiElement } from '../../UiElement.js';
/**
 * @fires ratiochange - When `ratio` computation is ready.
 */
export declare abstract class UiRange extends UiElement {
    protected ratioInternal: number;
    protected debounceInternal?: number;
    protected oldValue?: number;
    /**
     * @returns the ratio of the value.
     */
    get ratio(): number;
    /**
     * The number that represents the current value.
     * @attribute
     */
    accessor value: number;
    /**
     * The number that indicates the minimum value of the range.
     * @attribute
     */
    accessor min: number;
    /**
     * The number that indicates the maximum value of the range.
     * @attribute
     */
    accessor max: number;
    /**
     * Specifies the value granularity of the range's value.
     * @attribute
     */
    accessor step: number;
    protected willUpdate(cp: PropertyValues<this>): void;
    protected rangeChanged(): void;
    /**
     * Makes sure the value is in the right format.
     * @returns True when the value has changed.
     */
    protected validateValue(): boolean;
    protected clampValue(value: number): number;
    protected computeStep(step: number): number;
    protected computeRatio(value: number): number;
}
//# sourceMappingURL=Range.d.ts.map