import { default as React, ReactNode } from 'react'; import { ElementDensity, ElementFocusEffect, ElementFont, ElementPlacement, ElementSize, ElementTextPlacement, SurfaceColor } from '../../utils'; /** * Props for the Rating component. * * Numeric rating control rendered as a star slider with optional label and description. * * @category Rating */ export interface RatingProps extends Omit, 'type' | 'onChange' | 'value' | 'defaultValue' | 'size'> { /** Additional class applied to the root element. */ className?: string; /** Color applied to the filled icons. */ color?: SurfaceColor; /** Initial rating value for uncontrolled usage. */ defaultValue?: number; /** Visual density of the control. */ density?: ElementDensity; /** Supporting text displayed below the control. */ description?: string; /** Disables interaction with the control. */ disabled?: boolean; /** Icon used for the empty rating state. */ emptyIcon?: ReactNode; /** Error message displayed below the control. */ error?: string; /** Enables filled visual style for icons. */ filled?: boolean; /** Visual effects applied when the control receives focus. */ focusEffects?: ElementFocusEffect[]; /** Font applied to the label text. */ font?: ElementFont; /** Icon used for the filled rating state. */ icon?: ReactNode; /** DOM id used for accessibility attributes. */ id?: string; /** Label text displayed next to the control. */ label?: string; /** Maximum rating value. */ max?: number; /** Called when the rating value changes. */ onChange?: (value: number) => void; /** Prevents value changes while keeping the control focusable. */ readOnly?: boolean; /** Marks the control as required. */ required?: boolean; /** Visual size of the rating icons. */ size?: ElementSize; /** Step size used for keyboard and pointer interaction. */ step?: number; /** Placement of label and description relative to the control. */ textPlacement?: ElementTextPlacement; /** Tooltip alignment relative to the control. */ tooltipAlign?: ElementPlacement; /** Current rating value when used as a controlled component. */ value?: number; } /** * Star rating input rendered as an interactive slider. * * Supports mouse, keyboard and form integration through a hidden input. * * @function * @param props Component properties. * * @category Rating */ export declare const Rating: React.ForwardRefExoticComponent>;