react-native-chart-kit
Version:
Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.
103 lines • 4.69 kB
TypeScript
import { type ChartKitThemeContextValue } from "../../theme";
import type { LineChartProps, LineChartSelectionModel } from "./types";
import { type LineChartInteractionPoint } from "./interaction";
export declare const useChartModel: <TData extends Record<string, unknown>>({ data, xKey, yKey, yKeys, series, width, height, theme, preset, decimation, curve, connectNulls, area, areaFill, showDots, dots, selectedIndex, activeDot, crosshair, tooltip, referenceBands, referenceLines, showHorizontalGridLines, showVerticalGridLines, legend, labelStrategy, labelRotation, labelMinGap, edgeLabelPolicy, yDomain, yAxisLabelWidth, formatXLabel, formatYLabel, chartKitTheme, dataIndexOffset, selectionPointer, stableYAxisData }: LineChartProps<TData> & {
chartKitTheme: ChartKitThemeContextValue;
dataIndexOffset?: number;
selectionPointer?: {
index: number;
x: number;
y: number;
} | undefined;
stableYAxisData?: TData[] | undefined;
}) => {
boxes: import("../../../core/index").ChartBoxes;
geometries: {
style: {
strokeWidth: number;
strokeStyle: import("./options").ResolvedLineChartStrokeStyle;
dot: import("./options").ResolvedLineChartDotConfig;
color: string;
areaFill: import("./options").ResolvedLineChartAreaFillConfig;
threshold: import("./options").ResolvedLineChartThresholdStyle | undefined;
};
geometry: import("../../../core/index").LineSeriesGeometry<TData>;
}[];
interactionPoints: LineChartInteractionPoint<TData>[];
legendModel: {
config: import("./types").ResolvedLineChartLegendConfig;
renderProps: {
x: number;
y: number;
width: number;
height: number;
position: import("./types").LineChartLegendPosition;
align: import("./types").LineChartLegendAlign;
theme: import("../../theme").ResolvedCartesianChartTheme;
items: ({
labelColor: string;
labelGap: number;
paddingHorizontal: number;
paddingVertical: number;
strokeDasharray: readonly number[] | undefined;
strokeLinecap: import("./options").LineChartStrokeLinecap;
strokeOpacity: number;
strokeWidth: number;
fontFamily: string;
index: number;
key: string;
label: string;
color: string;
x: number;
y: number;
width: number;
height: number;
contentX: number;
contentY: number;
contentWidth: number;
contentHeight: number;
markerSize: number;
marker: import("./types").LineChartLegendMarker;
fontSize: number;
} | {
labelColor: string;
labelGap: number;
paddingHorizontal: number;
paddingVertical: number;
strokeDasharray: readonly number[] | undefined;
strokeLinecap: import("./options").LineChartStrokeLinecap;
strokeOpacity: number;
strokeWidth: number;
fontFamily?: never;
index: number;
key: string;
label: string;
color: string;
x: number;
y: number;
width: number;
height: number;
contentX: number;
contentY: number;
contentWidth: number;
contentHeight: number;
markerSize: number;
marker: import("./types").LineChartLegendMarker;
fontSize: number;
})[];
};
} | undefined;
referenceBandModels: import("./references").LineChartReferenceBandModel[];
referenceLineModels: import("./references").LineChartReferenceLineModel[];
resolvedTheme: import("../../theme").ResolvedCartesianChartTheme;
showHorizontalGridLines: boolean;
showVerticalGridLines: boolean;
crosshairConfig: import("./options").ResolvedLineChartCrosshairConfig;
selectionModel: LineChartSelectionModel<TData> | undefined;
xLabelLayout: import("./xLabels").XLabelLayout;
yScale: import("../../../core/index").LinearScale;
yTicks: number[];
formatYLabel: (value: number) => string;
};
export type LineChartModel<TData extends Record<string, unknown>> = ReturnType<typeof useChartModel<TData>>;
//# sourceMappingURL=useChartModel.d.ts.map