import { LuxenFormAssociatedElement } from '../../shared/luxen-form-associated-element.js'; export type SegmentedControlSize = 'sm' | 'md' | 'lg' | 'xl'; /** Fired when the selected segment changes. Bubbles; not composed. */ export declare class SegmentChangeEvent extends Event { readonly value: string; readonly index: number; constructor(value: string, index: number); } interface SegmentedControlEventMap { change: SegmentChangeEvent; } /** * @summary A single-select segmented control: a compact, mutually-exclusive * switch between a few options (radio-group semantics with a sliding pill). * Progressively enhances light-DOM ` * * * ``` * * @event change - Fired when the selected segment changes. Not cancelable. Bubbles. Properties: `value: string`, `index: number`. * * @cssproperty [--indicator-color=var(--l-color-surface)] - Background of the sliding pill behind the selected segment. * @cssproperty [--border-radius=var(--l-radius-lg)] - Corner radius of the track. * * @customElement l-segmented-control */ export declare class SegmentedControl extends LuxenFormAssociatedElement { createRenderRoot(): this; private _initialized; private _setupTimer; private _buttons; private _resizeObserver; /** Segments the consumer authored `aria-disabled` on — never ours to clear. */ private _authoredDisabled; /** Value of the selected segment (its `value` attribute, else its index). */ value: string; /** Control height, aligned with buttons and form controls at the same size. */ size: SegmentedControlSize; /** Accessible label announced for the group. Not displayed on screen. */ label?: string; /** Stretch segments to fill the container width. */ fullWidth: boolean; connectedCallback(): void; disconnectedCallback(): void; /** @returns true when setup ran or was already done; false to schedule a retry. */ private _trySetup; updated(changed: Map): void; formResetCallback(): void; formStateRestoreCallback(state: string, mode: 'restore' | 'autocomplete'): void; private _setup; private _teardown; /** Resolve the selected index from `value`, else an authored `aria-checked`, else 0. */ private _resolveActiveIndex; private _syncValueFromIndex; private _select; /** Index of the next non-disabled segment from `from`, moving by `dir`, wrapping. */ private _nextEnabled; private _isDisabled; /** Reflect the host `disabled` state onto the segments (aria + tab order). */ private _applyDisabledState; private _updateIndicator; private _onClick; private _onKeyDown; } export interface SegmentedControl { addEventListener(type: K, listener: (this: SegmentedControl, ev: SegmentedControlEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SegmentedControl, ev: SegmentedControlEventMap[K]) => void, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } export {}; //# sourceMappingURL=segmented-control.d.ts.map