import React, { type JSX } from 'react'; import { ChartSide } from '@adam-sv/arc'; import type { IBarChartAxisProps, IBarChartDatum, IBarChartSecondaryLineData, IBarOpts } from './types'; export interface IBarChartLogic { data: IBarChartDatum[]; stackedBars?: boolean; orientation: 'horizontal' | 'vertical'; minimumWidth: number; minimumHeight: number; axisSettings?: Partial>; barOpts?: IBarOpts; lineData?: IBarChartSecondaryLineData; minValue?: number; maxValue?: number; } export declare const useBarChartLogic: ({ data, stackedBars, orientation, minimumWidth, minimumHeight, axisSettings, barOpts, lineData, minValue, maxValue, }: IBarChartLogic) => { chartState: { forceRender: () => void; sizes: { axis: { canResizeSide: (side: ChartSide) => boolean; sizes: Record; setters: Record>>; constraints: Record; }; dom: { container: DOMRect; content: { width: number; height: number; }; }; svg: { xScaleFactor: number; yScaleFactor: number; xRange: number; yRange: number; }; }; refs: import("../Base/logic").ComponentRefs; scroll: { scrollValues: { scrollLeft: number; setScrollLeft: (left: number) => void; scrollTop: number; setScrollTop: (top: number) => void; }; scrollHandlers: Record unknown>; }; zoom: { currentZoom: number; setZoom: (zoom: number) => void; axes: "x" | "y" | "xy" | undefined; min: number; max: number; zoomIn: (exponent?: number) => void; zoomOut: (exponent?: number) => void; }; helpers: { canResizeSide: (side: ChartSide) => boolean; getDOMPosition: (component: import("@adam-sv/arc").ChartComponent, fitContent?: boolean) => Partial>; getDOMSize: (component: import("@adam-sv/arc").ChartComponent, fitContent?: boolean) => { width: number; height: number; }; getSVGSize: (component: import("@adam-sv/arc").ChartComponent, fitContent?: boolean) => { width: number; height: number; viewBox?: string; }; }; styles: Record<"content" | "container", React.CSSProperties>; props: import("@adam-sv/arc").IChartConfiguration; }; linearScale: import("d3-scale").ScaleLinear; bandScale: import("d3-scale").ScaleBand; lineLinearScale: import("d3-scale").ScaleLinear; devGetBars: () => { datum: any; position: { x: number; y: number; }; size: { width: number; height: number; }; }[]; setMouseInfo: React.Dispatch>; getLines: () => JSX.Element[]; mouseInfo: { left: number; top: number; triggerPosition: { top: number; left: number; }; text: string; horizontalSpace: number; verticalSpace: number; bar: IBarChartDatum; } | undefined; bandDomain: string[]; };