import { default as React } from 'react'; import { ElementDensity, ElementFocusEffect, ElementFont, ElementOrientation, ElementSize, ElementTextPlacement, SemanticColor, SurfaceColor } from '../../utils'; /** * Props for the {@link Slider} component. * @category Slider */ export interface SliderProps extends Omit, 'onChange' | 'defaultValue'> { /** Semantic color of the active track and handle. */ color?: SemanticColor; /** Default value for uncontrolled mode. Use `[start, end]` with `type="range"`. */ defaultValue?: number | [number, number]; /** Visual density of the layout. */ density?: ElementDensity; /** Supporting text displayed below the slider. */ description?: string; /** Disables interaction. */ disabled?: boolean; /** Error message. Overrides `description` when set. */ error?: string; /** Focus ring effects. */ focusEffects?: ElementFocusEffect[]; /** Font token for the label. */ font?: ElementFont; /** Format function for the value indicator. */ formatValue?: (value: number) => string; /** DOM id of the slider. Auto-generated when omitted. */ id?: string; /** Text label. */ label?: string; /** Show stop indicators at each step position (MD3 discrete mode). */ stops?: boolean; /** Maximum value. */ max?: number; /** Minimum value. */ min?: number; /** Name for the hidden form input. */ name?: string; /** Change handler. Returns `number` for single or `[number, number]` for range. */ onChange?: (value: number | [number, number]) => void; /** Called after a drag gesture ends. */ onChangeCommitted?: (value: number | [number, number]) => void; /** Track orientation. */ orientation?: ElementOrientation; /** Prevents value changes; sets `aria-readonly`. */ readOnly?: boolean; /** Required field indicator. */ required?: boolean; /** Value indicator display mode. `true`/`"hover"` → on hover+focus; `"always"` → always visible. */ showValue?: boolean | 'always' | 'hover'; /** Track thickness. MD3: XS=16dp, S=24dp, M=40dp (default), L=56dp, XL=96dp. */ size?: ElementSize; /** Step increment for keyboard and stop indicators. */ step?: number; /** Label placement relative to the slider. */ textPlacement?: ElementTextPlacement; /** * Slider behaviour type. * - `"standard"` — single handle, active track from the left edge (default). * - `"centered"` — single handle, active track grows from the midpoint. * - `"range"` — two handles; pass `[start, end]` as `value` / `defaultValue`. */ type?: 'standard' | 'centered' | 'range'; /** Color of the inactive track. */ trackColor?: SurfaceColor; /** Controlled value. Use `[start, end]` with `type="range"`. */ value?: number | [number, number]; } /** * MD3-compliant slider for selecting a value or range along a track. * * Track thickness is controlled by `size` (MD3: XS=16dp, S=24dp, M=40dp, L=56dp, XL=96dp). * Use `orientation="vertical"` and set a height via `style` for vertical sliders. * * @function * @category Slider * * @example * * * @example * * * @example * * * @example * */ export declare const Slider: React.ForwardRefExoticComponent>;