import type { VNodeChild } from "vue"; import type { XyControlStatus, XySemanticClassNames, XySemanticStyles, XySize } from "../core"; export type XyRateSemanticDom = "empty" | "filled" | "item" | "root" | "text"; export interface XyRateProps { allowClear?: boolean; allowHalf?: boolean; ariaLabel?: string; autofocus?: boolean; character?: string; classNames?: XyRateClassNames; count?: number; disabled?: boolean; id?: string; modelValue?: number; readonly?: boolean; required?: boolean; size?: XySize; status?: XyControlStatus; styles?: XyRateStyles; tabindex?: number; tooltips?: string[]; } export type XyRateClassNames = XySemanticClassNames; export type XyRateStyles = XySemanticStyles; export interface XyRateCharacterSlotProps { filled: boolean; index: number; /** @deprecated Use index instead. */ value: number; } export interface XyRateSlots { character?: (props: XyRateCharacterSlotProps) => VNodeChild; default?: (props: { value: number; }) => VNodeChild; } export interface XyRateExpose { blur: () => void; focus: (options?: FocusOptions) => void; nativeElement: HTMLDivElement | undefined; }