import { EventEmitter } from '../../stencil-public-runtime'; import { IconName, IconPosition, IconSize } from '../icon/exports'; /** * `` represents a single choice inside ``. * * Accessibility: * - Hosts `role="option"` and `aria-selected` / `aria-disabled`. * - Emits granular events consumed by the parent select for state + keyboard logic. * * Keyboard (handled by parent ``): * - Arrow keys move focus between options. * - Enter/Space commit the focused option. * - Typeahead supported via characters typed while the listbox is open. * * Do not use directly outside ``. */ export declare class SelectOption { host: HTMLRSelectOptionElement; /** * When true, the option is not focusable or selectable. * @default false */ disabled: boolean; /** * Marks the option as selected. Controlled by ``; not user‑set in isolation. * @default false */ selected: boolean; /** * Value submitted with a form when this option is selected. * If omitted or empty, it's auto-filled from text content / `label`. */ value?: string; /** * Presentational label. Falls back to slotted text; finally to `value`. * Use `label` if the rendered text differs from the submitted `value`. */ label?: string; /** * Name of an icon from the design system icon set to render with the option. * Mutually exclusive with a provided ``. */ icon?: IconName; /** * Icon size (applied when `icon` provided). * @default "m" */ iconSize?: IconSize; /** * Icon color token / CSS color value (when `icon` provided). * @default "var(--r-select-option--color)" */ iconColor?: string; /** * Icon position relative to label content. * @default "start" */ iconPosition?: IconPosition; /** Internal unique id assigned for accessibility / focus tracking. */ private uniqueId; /** * Fires when the option is activated via pointer (not disabled). * Payload includes the element + its value (resolved). */ optionClick: EventEmitter<{ element: HTMLRSelectOptionElement; value: any; }>; isFocused: boolean; isSelected: boolean; /** * Sets the component's focus state programmatically. * @method * @returns Promise that resolves once the focus state has been applied. */ setFocus(): Promise; /** * Removes the component's focus state programmatically. * @method * @returns Promise that resolves once the focus state has been removed. */ setBlur(): Promise; /** * Marks this option as selected. * * Sets the internal `isSelected` flag to `true`. Declared as `async` to allow for * future asynchronous side effects or integration with async selection workflows, * and may be safely awaited by callers. * * Idempotent: calling it multiple times will keep the option selected. * * @returns Promise that resolves once the selection state has been updated. */ setSelected(): Promise; /** * Clears the current selection state for this option by setting `isSelected` to `false`. * * Intended for use when programmatically resetting or updating the selection (e.g., on form reset * or when enforcing single-selection logic in a parent component). * * Side effects: * - Triggers any reactive updates or re-renders that depend on `isSelected`. * * @returns A promise that resolves after the selection state has been cleared. */ clearSelected(): Promise; private handleClick; private handleKeydown; get hasIconSlot(): boolean; get definedValue(): string; componentWillLoad(): void; render(): any; }