import { RadiantElement } from '@ecopages/radiant'; import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter'; import type { RuiButtonSize, RuiButtonVariant } from '../button/button'; export type RuiCycleToggleProps = { /** Active item id (matches `RuiCycleToggleItem` `id`). Defaults to the first enabled item. */ value?: string; /** Visual style passed to the inner button. Default: `filled`. */ variant?: RuiButtonVariant; /** Control size passed to the inner button. Default: `md`. */ size?: RuiButtonSize; /** Accessible name for the cycle button. */ label?: string; /** Disable the cycle button. Default: `false`. */ disabled?: boolean; }; export type RuiCycleToggleChangeDetail = { value: string; }; /** * `` — cycles through exclusive values on each button press. * * Compose with `RuiCycleToggleItem` children inside the rendered button. Only the * active item is visible; click advances to the next enabled item and wraps. * * @see https://www.w3.org/WAI/ARIA/apg/patterns/button/ * * @element rui-cycle-toggle * * @attr {string} value - Active item id. Reflects to markup. Default: `''`. * @attr {('filled'|'outline'|'destructive'|'ghost'|'link')} variant - Button variant * passed to the inner button. Default: `filled`. * @attr {('none'|'sm'|'md'|'lg')} size - Button size passed to the inner button. Default: `md`. * @attr {string} label - Accessible name prefix for the cycle button. Default: `''`. * @attr {boolean} disabled - Disables the cycle button. Default: `false`. * * @slot - `RuiCycleToggleItem` nodes projected into the inner button by the view. * * @fires rui-change - Emitted after `value` advances; `detail.value` is the new id. */ export declare class RuiCycleToggle extends RadiantElement { value: string; variant: RuiButtonVariant; size: RuiButtonSize; label: string; disabled: boolean; changeEvent: EventEmitter; private childObserver; connectedCallback(): void; protected onConnected(): void; disconnectedCallback(): void; onPropsUpdated(): void; /** Re-applies button labeling and the visible cycle item from the current `value`. */ resync(): void; private getItems; private getEnabledItems; private getItemValue; private syncButtonLabel; private syncButtonPresentation; private syncSelection; private cycle; onButtonClick(): void; }