import { DisplayStateConfigInterface } from '../_abstract/display-state-manager'; import type { HistogramBarData, Padding } from './types'; export declare const DEFAULT_PADDING: Padding; export declare const defaultBarCount = 30; export type HistogramConfigInterface = DisplayStateConfigInterface & { /** * Padding for the `Histogram` component. * Controls the spacing between the histogram and its container edges. * @default { top: 5, left: 5, bottom: 1, right: 5 } */ padding?: Padding; /** * Minimum height for each bar in the `Histogram` component. * Ensures that even bars with zero or very small values are still visible. * Set in pixels. * @default 2 */ minBarHeight?: number; /** * Padding for the data selection brush. * Controls the spacing between the selection brush and the bars. * Set in pixels. * @default 8 */ selectionPadding?: number; /** * Radius of the data selection brush. * Controls the roundness of the selection brush corners. * Set in pixels. * @default 3 */ selectionRadius?: number; /** * Padding between each bar. * Controls the spacing between adjacent bars. * Set in percent of bar width from 0 (as 0% of the bar width) to 1 (as 100% of the bar width). * @default 0.1 */ barPadding?: number; /** * Corners roundness of each bar in the `Histogram`. * Controls the visual appearance of the bar corners. * Set in pixels. * @default 1 */ barRadius?: number; /** * Number of bars to be displayed in the `Histogram`. * Controls the granularity of the data visualization. * Ignored if `dataStep` is set. * @default 30 */ barCount?: number; /** * Margin between the top edge of the `Histogram` and the maximum height bar. * Controls the spacing between the highest bar and the top of the container. * Set in pixels. * @default 3 */ barTopMargin?: number; /** * Option to generate bars of a specified width in the X axis units. * Overrides `barCount` when set. * Useful for creating bars of consistent width across different data ranges. * @default undefined */ dataStep?: number; /** * Determines whether or not the `Histogram` allows users to select bars using a selection brush control. * When true, users can drag to select a range of bars. * @default true */ allowSelection?: boolean; /** * Stick selection brush coordinates to the bar edges. * When true, the selection brush will snap to the edges of bars. * @default true */ stickySelection?: boolean; /** * Adjust the margin between the axis tick edge labels and the horizontal edges of the `Histogram` component bounding box. * Controls the spacing between the axis labels and the histogram edges. * Set in pixels. * @default 3 */ labelSideMargin?: number; /** * Function to format the axis tick edge labels in the Histogram component. * Allows for custom formatting of the numeric values displayed on the axis. * @param n - The numeric value to format * @returns The formatted string representation of the number */ formatter?: (n: number) => string; /** * Callback for the range selection. * Provides current selection of `Histogram`. * @param selection - The current selection range as [start, end] numbers * @param isManuallySelected - Whether the selection was made by user interaction */ onBrush?: (selection: [number, number] | undefined, isManuallySelected?: boolean) => void; /** * Callback that is called when a bar is hovered over. * Provides `BarData` for hovered bar: `rangeStart`, `rangeEnd` and `count` of records in this bar. * @param data - The data for the hovered bar */ onBarHover?: (data: HistogramBarData) => void; }; export declare const defaultHistogramConfig: HistogramConfigInterface;