import { EventEmitter, ComponentInterface } from '../../stencil-public-runtime';
/**
 * Rating - a form element to allow the viewing and input of user feedback.
 *
 * @version 1.0.0
 * @status stable
 *
 * @slot label - A slot for a label element. If no label is provided, the `label` prop will be used.
 */
export declare class Rating implements ComponentInterface {
    private rating;
    private isRtl;
    private indicator;
    host: HTMLNanoRatingElement;
    hoverValue: number;
    isHovering: boolean;
    /**
     * The current rating.
     */
    value: number;
    /**
     * The highest rating to show.
     */
    max: number;
    /**
     * The minimum increment value allowed by the control.
     */
    precision: number;
    /**
     * Makes the rating readonly.
     */
    readonly: boolean;
    /**
     * Disables the rating.
     */
    disabled: boolean;
    /**
     * The name of the control, which is submitted with the form data.
     */
    name: string;
    /**
     * If `true`, the user must fill in a value before submitting a form.
     * By default, setting this will also add an asterisk to the label.
     */
    required: boolean;
    /**
     * Visually hide the label - but make it accessible.
     */
    hideLabel: boolean;
    private _label;
    /**
     * String to place within a label element. Alternatively you may use a label slot.
     */
    get label(): string;
    set label(value: string);
    /**
     * The name of the control, which is submitted with the form data.
     */
    symbolName: string;
    /**
     * A function that returns the symbols to display.
     * Allows for more granular control than `symbol-name`.
     * Accepts an option `value` parameter you can use to map a specific symbol to a value.
     * @param _number
     * @returns an html string used to render your rating symbol
     */
    symbol: (_number: number) => string;
    handleValueChange(): void;
    handleSymbolChange(): void;
    /**
     * Emitted when the rating's value changes.
     */
    nanoChange: EventEmitter<void>;
    /**
     * Emitted when the input loses focus.
     */
    nanoBlur: EventEmitter<void>;
    /**
     * Emitted when the input has focus.
     */
    nanoFocus: EventEmitter<void>;
    /**
     * Sets focus on the rating.
     */
    setFocus(): Promise<void>;
    /**
     * Removes focus from the rating.
     */
    removeFocus(): Promise<void>;
    private getValueFromMousePosition;
    private roundToPrecision;
    private handleClick;
    private handleKeyDown;
    private handleMouseEnter;
    private handleMouseLeave;
    private handleFocus;
    private handleBlur;
    private handleMouseMove;
    private clip;
    componentDidLoad(): void;
    connectedCallback(): void;
    render(): any;
}
