import { Component } from 'react';
import Star from './Star';
import { IDisabledContext } from '../disabled';
export interface IRateProps {
    onChange?: (value: number) => void;
    value: number;
    allowClear?: boolean;
    allowHalf?: boolean;
    character?: React.ReactNode;
    className?: string;
    count: number;
    disabled?: boolean;
    style?: React.CSSProperties;
    readOnly?: boolean;
}
export interface IRateState {
    starRefs: Array<React.RefObject<Star>>;
    cleanedValue: number | null;
    hoverValue: number | null;
}
export declare class Rate extends Component<IRateProps, IRateState> {
    static defaultProps: {
        value: number;
        count: number;
        allowHalf: boolean;
        allowClear: boolean;
        character: JSX.Element;
        readOnly: boolean;
    };
    static contextType: import("react").Context<IDisabledContext>;
    context: IDisabledContext;
    constructor(props: IRateProps);
    onHover: (event: React.MouseEvent<HTMLLIElement>, index: number) => void;
    onMouseLeave: () => void;
    onClick: (event: React.MouseEvent<HTMLLIElement>, index: number) => void;
    getStarDOM(index: number): HTMLLIElement;
    getStarValue(index: number, x: number): number;
    static getDerivedStateFromProps({ count }: IRateProps, { starRefs }: IRateState): Partial<IRateState> | null;
    render(): JSX.Element;
}
export default Rate;
