import { CustomElement } from '../../Abstracts/CustomElement';
import type { IRatingElementProps } from './IRatingElementProps';
type _FixTouchEvent = TouchEvent;
declare const RatingElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Valueable").IValueableProps<unknown>) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Labelable").ILabelableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Sizeable").ISizeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * The `{@link RatingElement}` element.
 *
 * @public
 */
export declare class RatingElement extends RatingElement_base implements IRatingElementProps {
    private _ratingElement;
    private _length;
    private _precision;
    private _readonly;
    private _symbol;
    private _symbolAccessor;
    private _hoverValue;
    private _isHovering;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `length` property.
     *
     * @public
     * @attr
     */
    get length(): number;
    set length(value: number);
    /**
     * Gets or sets the `precision` property.
     *
     * @public
     * @attr
     */
    get precision(): number;
    set precision(value: number);
    /**
     * Gets or sets the `readonly` property.
     *
     * @public
     * @attr
     */
    get readonly(): boolean;
    set readonly(value: boolean);
    /**
     * Gets or sets the `symbol` property.
     *
     * @public
     * @attr
     */
    get symbol(): string;
    set symbol(value: string);
    /**
     * Gets or sets the `symbolAccessor` property.
     *
     * @public
     * @attr
     */
    get symbolAccessor(): (index: number) => string;
    set symbolAccessor(value: (index: number) => string);
    /**
     * Gets or sets the `hoverValue` property.
     *
     * @public
     */
    get hoverValue(): number;
    set hoverValue(value: number);
    /**
     * Gets or sets the `isHovering` property.
     *
     * @public
     */
    get isHovering(): boolean;
    set isHovering(value: boolean);
    /**
     * @public
     * @override
     */
    focus(options?: FocusOptions): void;
    /**
     * @public
     * @override
     */
    blur(): void;
    protected onApplyTemplate(): void;
    /**
     * @protected
     */
    protected onClick(event: MouseEvent): void;
    /**
     * @protected
     */
    protected onKeyDown(event: KeyboardEvent): void;
    /**
     * @protected
     */
    protected onMouseEnter(event: MouseEvent): void;
    /**
     * @protected
     */
    protected onMouseMove(event: MouseEvent): void;
    /**
     * @protected
     */
    protected onMouseLeave(): void;
    /**
     * @protected
     */
    protected onTouchStart(event: _FixTouchEvent): void;
    /**
     * @protected
     */
    protected onTouchMove(event: _FixTouchEvent): void;
    /**
     * @protected
     */
    protected onTouchEnd(event: _FixTouchEvent): void;
    /**
     * @private
     */
    private getValueFromMousePosition;
    /**
     * @private
     */
    private getValueFromTouchPosition;
    /**
     * @private
     */
    private getValueFromXCoordinate;
    /**
     * @private
     */
    private setValue;
    /**
     * @private
     */
    private roundToPrecision;
}
/**
 * @public
 */
export declare namespace RatingElement {
    type Props = IRatingElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-rating': RatingElement;
    }
}
export {};
//# sourceMappingURL=RatingElement.d.ts.map