import { RangeBarEventsProps, RangeBarRangeProps, RangeSelectorAppearanceProps, RangeSelectorFormattingProps, RangeSelectorLabelsProps } from '../../types';
export interface RangeSelectorProps {
    /** Cabecera visible (Figma: «Label»). */
    labels: RangeSelectorLabelsProps;
    /** Dominio y valor del intervalo. */
    range: RangeBarRangeProps;
    /** Emisión de cambios de valor. */
    events: RangeBarEventsProps;
    /** Color del carril y variante compacta. */
    appearance?: RangeSelectorAppearanceProps;
    /** Formato numérico y separador «de» en cabecera. */
    formatting?: RangeSelectorFormattingProps;
    /** Deshabilita el control. */
    disabled?: boolean;
    /** Clases en el contenedor raíz (ref). */
    className?: string;
}
/**
 * **RangeSelector** — etiquetas + valores actuales + `RangeBar` (Figma `2:264`).
 *
 * Incluye variante **compacta** (slider entre etiquetas de `min`/`max`) y la variante
 * ampliada con carril a ancho completo entre cabecera y leyendas inferiores. En compacto, los
 * extremos numéricos usan ancho en `ch` solo según `min`/`max` y se alinean hacia la pista (no el
 * ancho máximo de toda la rejilla, que reserva hueco vacío). En modo ampliado,
 * cabecera y leyendas inferiores comparten el mismo sangrado horizontal que el carril del
 * `RangeBar` ({@link RANGE_BAR_TRACK_BLEED_X}) para alinear texto con inicio y fin de la pista.
 * Los números formateados (cabecera y pie) reservan ancho fijo en unidades ch y tipografía
 * tabular (CSS) para que no «salten» al cambiar el valor.
 *
 * @example
 * ```tsx
 * const [v, setV] = useState({ start: 2.5, end: 4 });
 * <RangeSelector
 *   labels={{ title: 'Precio' }}
 *   range={{ min: 0, max: 5, step: 0.5, value: v }}
 *   events={{ onChange: setV }}
 * />
 * ```
 */
export declare const RangeSelector: import('react').ForwardRefExoticComponent<RangeSelectorProps & import('react').RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=RangeSelector.d.ts.map