import * as React from 'react'; import type { AngleSliderContextValue, AngleSliderProps } from './types.cjs'; /** @internal Marks are found by attribute at interaction time — no registration plumbing. */ export declare const MARK_SELECTOR = "[data-skdx-angle-slider-mark]"; /** @internal Folds any number of degrees into `[0, 360)`, so 450 and -270 both read as 90. */ export declare function normalizeAngle(angle: number): number; /** @internal Every rendered mark's angle: normalized, deduped, sorted, read from the DOM. */ export declare function readMarks(root: HTMLElement | null): number[]; /** @internal Closest mark around the circle (e.g., 350° → 0°, not 340°). */ export declare function nearestMark(marks: number[], angle: number): number; export declare const AngleSliderProvider: React.FC, useAngleSliderContext: (consumerName: string) => AngleSliderContextValue; /** * Root of an angle slider — a dial whose value is a *direction* rather than a * position along a line: a gradient angle, a wind bearing, a knob. Renders a * `role="slider"` div with `aria-valuemin`/`aria-valuemax`/`aria-valuenow` and * an `aria-valuetext` in degrees. * * 0° is at 12 o'clock and the angle increases clockwise (90° = 3 o'clock); the * value stays in `[0, 360)`, since 360 and 0 are the same direction. * * Publishes `--skdx-angle-slider-angle` so the thumb's rotation is pure CSS, * with no per-frame JS positioning. * * Every value is reachable without a pointer: arrows step by `step`, * Shift+arrow by 10°, PageUp/PageDown by 45°, and Home/End jump to the first * and last reachable angle, wrapping around the circle. Arrow keys are not * mirrored under `dir="rtl"`. * * Give the root an accessible name (`aria-label` or `aria-labelledby`) — an * unnamed slider announces a bare number of degrees. * * With no `children` it draws the derived anatomy from `marks`; with children, * they render verbatim — reach for `@skdx/react/primitives/angle-slider` for * the parts. * * @example * ```tsx * * ``` */ export declare const AngleSlider: { ({ ref: forwardedRef, ...props }: AngleSliderProps): React.ReactNode; displayName: string; };