import { LitElement } from 'lit'; import { LabelPosition } from '../../../shared/form-control-utils'; export interface SliderProps { label?: string; labelPosition?: LabelPosition; labelHidden?: boolean; noLabel?: boolean; ariaLabel?: string; min?: number; max?: number; step?: number; value?: number | [number, number]; dual?: boolean; vertical?: boolean; size?: 'small' | 'default' | 'large'; filled?: boolean; monochrome?: boolean; disabled?: boolean; readonly?: boolean; required?: boolean; invalid?: boolean; errorMessage?: string; helpText?: string; name?: string; showTooltip?: boolean; showTicks?: boolean; tickStep?: number; onChange?: (event: CustomEvent<{ value: number | [number, number]; }>) => void; onInput?: (event: CustomEvent<{ value: number | [number, number]; }>) => void; onFocus?: (event: FocusEvent) => void; onBlur?: (event: FocusEvent) => void; } declare const AgSlider_base: (new (...args: any[]) => import('../../../shared/face-mixin').FaceMixinInterface) & typeof LitElement; /** * AgSlider - Foundation slider component with single/dual range support */ export declare class AgSlider extends AgSlider_base implements SliderProps { static styles: import('lit').CSSResult[]; private _defaultValue; private _sliderId; private _minInputId; private _maxInputId; private _labelId; private _helperId; private _errorId; private _activeDrag; private _lastRenderTime; private _renderThrottleMs; constructor(); /** * Label Architecture */ label: string; labelPosition: LabelPosition; labelHidden: boolean; noLabel: boolean; ariaLabel: string; /** * Range properties */ min: number; max: number; step: number; value: number | [number, number]; /** * Dual range support */ dual: boolean; /** * Orientation */ vertical: boolean; /** * Styling variants */ filled: boolean; monochrome: boolean; /** * Size variants */ size: 'small' | 'default' | 'large'; /** * States */ disabled: boolean; readonly: boolean; required: boolean; invalid: boolean; errorMessage: string; helpText: string; /** * Display options */ showTooltip: boolean; showTicks: boolean; tickStep: number; /** * Event callbacks */ onChange?: (event: CustomEvent<{ value: number | [number, number]; }>) => void; onInput?: (event: CustomEvent<{ value: number | [number, number]; }>) => void; onFocus?: (event: FocusEvent) => void; onBlur?: (event: FocusEvent) => void; /** * Internal state */ private _activeThumb; private _focusedThumb; private _draggingThumb; private _track?; private _liveRegion?; /** * Property validation */ protected willUpdate(changedProperties: Map): void; /** * Clamp current value to min/max and validate */ private _clampAndValidateValue; updated(changedProperties: Map): void; firstUpdated(): void; /** * FACE lifecycle: called when the parent form is reset. * Restores the slider to the value it had on first render. */ formResetCallback(): void; /** * FACE lifecycle: called on session restore or browser autofill. * Restores the slider value from the previously saved FormData. * Single mode: one entry (name, valueStr). Dual mode: two entries. */ formStateRestoreCallback(state: File | string | FormData | null, _mode: 'restore' | 'autocomplete'): void; /** * Sync CustomStateSet states so :state() pseudo-classes work from external CSS. * * Must be called AFTER _updateFormValue() (which also calls setValidity) so * that :state(invalid) reads the freshly-updated _internals.validity.valid value. * * Exposed states: * :state(disabled) — slider is disabled * :state(readonly) — slider is read-only * :state(required) — slider is required * :state(invalid) — FACE constraint validation is failing */ private _syncStates; /** * Update form value when component value changes */ private _updateFormValue; /** * Get current values as array for consistent handling */ private get _values(); /** * Get percentage position for a value */ private _getPercentage; /** * Get value from percentage */ private _getValueFromPercentage; /** * Get value from pointer position */ private _getValueFromPointer; /** * Clamp value to min/max and step */ private _clampValue; /** * Announce value to screen readers with enhanced context */ private _announceValue; /** * Handle thumb pointer down (start of drag) */ private _handleThumbPointerDown; /** * Handle pointer move during drag (with throttling) */ private _handlePointerMove; /** * Handle pointer up (end of drag) */ private _handlePointerUp; /** * Update value and dispatch events */ private _updateValue; /** * Handle input events from native range inputs */ private _handleInput; /** * Handle change events from native range inputs */ private _handleChange; /** * Handle focus events */ private _handleFocus; /** * Handle blur events */ private _handleBlur; /** * Handle track click to set value */ private _handleTrackClick; /** * Generate tick marks */ private _renderTicks; /** * Render thumb with tooltip */ private _renderThumb; /** * Render progress bar with enhanced visual feedback */ private _renderProgress; private renderLabel; render(): import('lit').TemplateResult<1>; disconnectedCallback(): void; } export {}; //# sourceMappingURL=_Slider.d.ts.map