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;
/**
 * Rating - An interactive rating input control using customizable symbols for user feedback collection.
 *
 * @description
 * The Rating component provides an intuitive interface for users to provide feedback using visual symbols
 * (typically stars). It supports fractional ratings, hover interactions, keyboard navigation, and extensive
 * customization options. Features include configurable symbol sets (stars, hearts, thumbs up, etc.),
 * adjustable scale lengths, read-only and interactive modes, horizontal and vertical orientations,
 * accessibility support with ARIA attributes, and smooth hover animations. The component handles both
 * click and touch interactions, supports RTL layouts, and provides precise fractional rating capabilities.
 * Perfect for product reviews, feedback forms, content ratings, and user satisfaction surveys.
 *
 * @name Rating
 * @element mosaik-rating
 * @category Inputs
 *
 * @csspart root - The root container element.
 * @csspart symbols - The container for rating symbols.
 * @csspart symbol - Individual rating symbol elements.
 *
 * @cssprop {String} --rating-background-color - The background color.
 * @cssprop {String} --rating-border-color - The border color.
 * @cssprop {String} --rating-border-radius - The border radius.
 * @cssprop {String} --rating-border-style - The border style.
 * @cssprop {String} --rating-border-width - The border width.
 * @cssprop {String} --rating-foreground-color - The foreground color.
 * @cssprop {String} --rating-shadow - The shadow.
 *
 * @dependency mosaik-icon - Used for rating symbols.
 *
 * @example
 * ```html
 * <mosaik-rating
 *   length="5"
 *   value="4.5"
 *   label="Rate this product">
 * </mosaik-rating>
 * ```
 *
 * @example
 * ```html
 * <mosaik-rating
 *   length="10"
 *   orientation="vertical"
 *   readonly
 *   value="7">
 * </mosaik-rating>
 * ```
 *
 * @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
     * @override
     */
    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