import "./slider.css"; import type * as React from "react"; import { Slider as Base } from "@base-ui/react/slider"; import { type StyleProps } from "./style_props"; import { type InkColor } from "./text_ink"; export interface SliderBaseProps extends StyleProps { min: number; max: number; step?: number; /** Default: the bare number in the active pack's locale. */ format?: (value: number) => string; /** What the row over the track reads: each thumb's figure (`values`, the default); the domain's `min` and `max` * (`ends`), where the figures are typed beside it, so the track still says what it spans; or `none`. */ labels?: "values" | "ends" | "none"; /** Default the neutral ink. */ color?: InkColor; /** In `range` mode the thumbs announce the locale's min/max phrasing, as a filtered column's ends do. */ accessibilityLabel: string; testID?: string; ref?: React.Ref; render?: React.ComponentProps["render"]; } export type SliderProps = SliderBaseProps & ({ range?: false; value: number; onValueChange: (value: number) => void; } | { range: true; value: [number, number]; onValueChange: (value: [number, number]) => void; }); /** A range's `FilterChip` summary ("5tr–10tr", "≥ 5tr"), `undefined` at the full range — a thumb at an end of * `bounds` leaves that end open; written as `figureRange` writes every range. */ export declare function rangeSummary(value: [number, number], format?: (n: number) => string, bounds?: [number, number]): string | undefined; /** Drag a continuous number along a track; `range` adds a second thumb and makes the value `[low, high]` — * one control in two modes, since geometry, drag, keyboard and a11y are identical. A styled Base UI * `Slider`, so every thumb is an ARIA slider and range thumbs clamp against each other. For a small * discrete count or an exact figure, use `NumberInput`. */ export declare function Slider(props: SliderProps): React.JSX.Element;