import './HorizontalMixer.scss'; export type HorizontalMixerStyles = { totalHeight: number; trackHeight: number; trackPadding: number; trackMargin: number; trackBorderColor: string; trackTextColor: string; trackBorderRadius: number; thumbSize: number; thumbBorderRadius: number; thumbBorder: number; }; export type HorizontalMixerProps = { colors: string[] | string[][]; labels: string[]; breakValues: number[]; onChange: (value: number[], index: number) => void; onAfterChange?: (value: number[], index: number) => void; pearling?: boolean; tooltipVisible?: boolean; styles: HorizontalMixerStyles; isComposite?: boolean; renderOnAfterChange?: boolean; isSmall?: boolean; compositeBreakValues?: number[][]; colorOverride?: [boolean, string]; }; /** * HorizontalMixer component that renders a customizable horizontal slider with color tracks and labels.
* The break value should be a number array, and the length of breakValues should be one less than colors, since breakValues represent the breakpoints between colors.
* Also, each number should be larger than the previous one, since they represent the cumulative breakpoints along the slider.
* For example, if there are 3 breakValues, they could be [20, 50, 80], which means the first track will take up 20% of the slider, the second track will take up 30% (50-20), and the third track will take up 30% (80-50), and the last track will take up 20% (100-80). * * @param {Object} props - The properties passed to the component. * @param {Array} props.colors - An array of colors for each track in the mixer. * @param {Array} props.breakValues - An array of values that define the breakpoints of the slider. * @param {function(Array, number): void} props.onChange - Callback function called when the slider value changes. * @param {function(Array, number): void} [props.onAfterChange] - Callback function called after the slider value change is complete. * @param {Array} props.labels - An array of labels corresponding to each track in the mixer. * @param {Object} props.styles - The style properties for the mixer and its components. * @param {number} props.styles.totalHeight - The total height of the slider. * @param {number} props.styles.trackHeight - The height of the track. * @param {number} props.styles.trackPadding - The padding of the track. * @param {number} props.styles.trackMargin - The margin of the track. * @param {string} props.styles.trackBorderColor - The border color of the track. * @param {string} props.styles.trackTextColor - The text color used for labels on the track. * @param {number} props.styles.trackBorderRadius - The border radius of the track. * @param {number} props.styles.thumbSize - The size of the slider's thumb. * @param {number} props.styles.thumbBorderRadius - The border radius of the slider's thumb. * @param {number} props.styles.thumbBorder - The border size of the slider's thumb. * @param {boolean} [props.pearling=false] - If true, the slider handles will not pass each other while moving. * @param {boolean} [props.tooltipVisible=false] - If true, tooltips will be shown when hovering over the slider. * @param {boolean} [props.isComposite=false] - If true, the slider tracks will be rendered using the CompositeTrack component. * And make sure `compositeBreakValues` is passed with an nested number array. * @param {boolean} [props.isSmall=false] - If true, the slider tracks will be rendered in a smaller size. * @param {Array>} [props.compositeBreakValues] - An array of arrays containing break values for each composite track. * * @returns {JSX.Element} The rendered HorizontalMixer component with a slider, tracks, and labels. */ export declare const HorizontalMixer: (props: HorizontalMixerProps) => import("react/jsx-runtime").JSX.Element; export default HorizontalMixer;