import { default as React } from 'react';
/**
 * Props for the SliderUI component
 * @typedef {Object} SliderUIProps
 * @property {string} id - HTML id for the range input
 * @property {React.ReactNode} label - Display label content for the slider (text or JSX)
 * @property {string} ariaLabel - Accessible label for screen readers
 * @property {number} min - Minimum value
 * @property {number} max - Maximum value
 * @property {number} step - Step size (granularity of changes)
 * @property {number} value - Current value from external state (core state)
 * @property {(value: number, transient: boolean) => void} onChange - Called whenever the slider value
 *   changes during interaction. When transient=true (during pointer drag or keyboard navigation),
 *   the parent should use skippable actions. Both pointer-up and keyboard-blur clear the transient
 *   state without calling onChange again, allowing the parent's sync effect to re-sync to the
 *   latest core-constrained value without a duplicate action.
 */
type SliderUIProps = {
    id: string;
    label: React.ReactNode;
    ariaLabel: string;
    ariaValueText?: string;
    min: number;
    max: number;
    step: number;
    value: number;
    onChange: (value: number, transient: boolean) => void;
    onDragEnd: () => void;
};
/**
 * SliderUI - A range input component with transient interaction tracking.
 *
 * Tracks two states: localValue (UI state during dragging) and transient flag (whether user is actively dragging).
 * During drag or keyboard stepping (transient=true), onChange fires with intermediate values so the parent can
 * send skippable actions. On pointer up/blur, the transient state ends without calling onChange again; the parent
 * can then re-sync the UI from the latest external, core-constrained value without a duplicate final action.
 */
export default function SliderUI({ id, label, ariaLabel, ariaValueText, min, max, step, value, onChange, onDragEnd, }: SliderUIProps): React.JSX.Element;
export {};
//# sourceMappingURL=SliderUI.d.ts.map