import * as _angular_core from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; /** * Star rating input. Click or hover to set a value; supports half-star * increments via `step="0.5"`. Implements `ControlValueAccessor` — value * is `number | null` (clamped to `[0, count]`). * * Keyboard: `←` / `→` bump by `step`, `Home` / `End` jump to 0 / max. * Clicking the current value clears it (toggle off). * * @example * ```html * * * * ``` * * @see https://ngwr.dev/components/rating */ type WrRatingSize = 'sm' | 'md' | 'lg'; declare class WrRating implements ControlValueAccessor { /** Total number of slots. @default 5 */ readonly count: _angular_core.InputSignalWithTransform; /** Step granularity — `1` for whole stars, `0.5` for halves. @default 1 */ readonly step: _angular_core.InputSignalWithTransform<1 | 0.5, unknown>; /** Read-only — value is displayed but not interactive. @default false */ readonly readonly: _angular_core.InputSignalWithTransform; /** Disable interaction. @default false */ readonly disabled: _angular_core.InputSignalWithTransform; /** Control size — scales the icons + gaps. @default 'md' */ readonly size: _angular_core.InputSignal; /** Accessible label. @default 'Rating' */ readonly ariaLabel: _angular_core.InputSignal; /** Last committed value (mirrored from the CVA). */ protected readonly value: _angular_core.WritableSignal; /** Transient hover preview — overrides `value` for display when set. */ protected readonly hoverValue: _angular_core.WritableSignal; private readonly disabledFromCva; protected readonly effectiveDisabled: _angular_core.Signal; protected readonly interactive: _angular_core.Signal; /** What we actually render — hover wins while hovering. */ protected readonly displayValue: _angular_core.Signal; protected readonly slots: _angular_core.Signal; protected readonly classes: _angular_core.Signal; /** Fill ratio for slot `i` in `[0, 1]` — drives the CSS clip width. */ protected fillFor(i: number): number; private onChange; private onTouched; writeValue(value: number | null): void; registerOnChange(fn: (value: number | null) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; protected onSlotMove(event: MouseEvent, index: number): void; protected onLeave(): void; protected onSlotClick(event: MouseEvent, index: number): void; protected onKeydown(event: KeyboardEvent): void; /** Convert a mouse position over slot `index` to a snapped value. */ private computeValue; private commit; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { WrRating }; export type { WrRatingSize };