import React, { Component, type KeyboardEvent, type MouseEvent } from 'react';
import PropTypes from 'prop-types';
import { type ClassPropsWithDefault } from '../util';
import type { RatingProps, RatingState } from './types';
declare class Rating extends Component<RatingProps, RatingState> {
    static propTypes: {
        prefix: PropTypes.Requireable<string>;
        defaultValue: PropTypes.Requireable<number>;
        value: PropTypes.Requireable<number>;
        count: PropTypes.Requireable<number>;
        showGrade: PropTypes.Requireable<boolean>;
        size: PropTypes.Requireable<string>;
        allowHalf: PropTypes.Requireable<boolean>;
        allowClear: PropTypes.Requireable<boolean>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        onHoverChange: PropTypes.Requireable<(...args: any[]) => any>;
        disabled: PropTypes.Requireable<boolean>;
        readAs: PropTypes.Requireable<(...args: any[]) => any>;
        iconType: PropTypes.Requireable<string>;
        strokeMode: PropTypes.Requireable<boolean>;
        className: PropTypes.Requireable<string>;
        id: PropTypes.Requireable<string>;
        rtl: PropTypes.Requireable<boolean>;
        locale: PropTypes.Requireable<object>;
        isPreview: PropTypes.Requireable<boolean>;
        renderPreview: PropTypes.Requireable<(...args: any[]) => any>;
        readOnly: PropTypes.Requireable<boolean>;
        defaultPropsConfig: PropTypes.Requireable<object>;
        errorBoundary: PropTypes.Requireable<NonNullable<boolean | object | null | undefined>>;
        pure: PropTypes.Requireable<boolean>;
        warning: PropTypes.Requireable<boolean>;
        device: PropTypes.Requireable<string>;
        children: PropTypes.Requireable<any>;
        popupContainer: PropTypes.Requireable<any>;
    };
    static defaultProps: {
        prefix: string;
        size: string;
        disabled: boolean;
        readOnly: boolean;
        isPreview: boolean;
        count: number;
        showGrade: boolean;
        defaultValue: number;
        readAs: (val: number) => number;
        allowHalf: boolean;
        allowClear: boolean;
        onChange: () => void;
        onHoverChange: () => void;
        locale: Partial<{
            description: string;
        }> & {
            momentLocale?: string | undefined;
        };
    };
    static displayName: string;
    static currentValue(min: number, max: number, hoverValue: number, stateValue: number): number;
    static getDerivedStateFromProps(nextProps: RatingProps): Partial<RatingState>;
    timer: ReturnType<typeof setTimeout> | null;
    underlayNode: HTMLDivElement | null;
    readonly props: ClassPropsWithDefault<RatingProps, typeof Rating.defaultProps>;
    constructor(props: RatingProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    [key: `refs-rating-icon-${number}`]: HTMLSpanElement | null;
    clearTimer(): void;
    getRenderResult(): void;
    getValue(e: MouseEvent): number;
    handleHover(e: MouseEvent<HTMLDivElement>): void;
    handleLeave(): void;
    onKeyDown(e: KeyboardEvent<HTMLDivElement>): true | void;
    handleChecked(index: number): void;
    handleClick(e: MouseEvent<HTMLDivElement>): void;
    getOverlayWidth(): number | "auto";
    getInfoLeft(): number;
    saveRef: (ref: HTMLSpanElement | null, i: number) => void;
    render(): React.JSX.Element;
}
declare const _default: typeof Rating;
export default _default;
