import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export type RatingSize = "sm" | "md" | "lg";
export type RatingIconKind = "star" | "heart";
type DivPropsBase = Omit<ComponentPropsWithoutRef<"div">, "onChange" | "children" | "defaultValue">;
export interface RatingProps extends DivPropsBase {
    value: number;
    onChange?: (value: number) => void;
    /** Number of items in the row. Default 5. */
    max?: number;
    size?: RatingSize;
    /** Allow half-step values (0.5, 1.5, …). Default false. */
    allowHalf?: boolean;
    /** Read-only — AT users still hear the value, mouse + keyboard
     *  can't change it. */
    readOnly?: boolean;
    /** Fully disabled — also de-focuses the slider. */
    disabled?: boolean;
    /** Render the formatted value next to the row ("3.5 / 5"). */
    showLabel?: boolean;
    /** Custom label content. When omitted and `showLabel`, the
     *  component renders `${value} / ${max}`. */
    label?: ReactNode;
    /** Pictogram. `"star"` (default) uses `StarIcon` / `StarHalfIcon` /
     *  `StarFilledIcon`; `"heart"` uses the Favorite family. */
    icon?: RatingIconKind;
    /** Format the announced value text for AT users. Default `"{n} of {max}"`. */
    formatValueText?: (value: number, max: number) => string;
}
export declare const Rating: import("react").ForwardRefExoticComponent<RatingProps & import("react").RefAttributes<HTMLDivElement>>;
export {};
//# sourceMappingURL=Rating.d.ts.map