import type { SkFont } from "@shopify/react-native-skia"; import { type ChartPadding } from "../draw/line"; import type { BadgeMetrics, ChartInsets, LiveChartPalette } from "../types"; export interface ChartLayoutConfig { palette: LiveChartPalette; lineWidthOverride?: number; insetsOverride?: ChartInsets; yAxis: boolean; /** Float the y-axis over a full-width plot (no reserved right gutter). */ yAxisFloat?: boolean; badge: boolean; /** Badge pill geometry tokens. Omit for built-in defaults. */ badgeMetrics?: BadgeMetrics; /** * When true (default if omitted and `badge` is true), reserve the wide right gutter for the badge. * Set false when the badge is anchored left of the live dot (`position: "left"`). */ badgeUsesRightGutter?: boolean; /** When false, bottom inset shrinks (no x-axis labels). Default true. */ xAxis?: boolean; /** * Reserved volume-bar band height (px) below the candles. Added to the bottom * padding so the candle/price plot shrinks by this much; the x-axis offsets * back down by it so its labels stay pinned to the bottom (see XAxisOverlay). * `0`/omitted = no band. An explicit `insetsOverride.bottom` suppresses it. */ volumeBandHeight?: number; /** Skia font for measuring label width. When provided with formatValue + currentValue, padding auto-sizes. */ font?: SkFont; /** Worklet formatter — called on JS thread here to measure label width */ formatValue?: (v: number) => string; /** Current value read from SharedValue on JS thread — used to produce a sample label for measurement */ currentValue?: number; /** * Live dot pulse (LiveChart); floors top/right/bottom auto-padding so the ring * is not clipped. An explicit `insetsOverride` on a side wins over this floor. */ pulse?: { maxRadius: number; strokeWidth: number; } | null; /** * Static live-dot glow; floors auto-padding so its blurred falloff is not * clipped. Explicit side insets still win. */ dotGlow?: { radius: number; blur: number; } | null; /** * When false and the badge uses the right gutter, omit the tail and * round-cap inset from the right padding. */ badgeShowTail?: boolean; /** Multi-series dot radius — used to add spacing between dots and Y-axis labels. */ multiSeriesDotRadius?: number; /** When true, inline series labels sit right of dots and need extra right padding. */ multiSeriesValueLabel?: boolean; /** Measured width of the widest series label (e.g. "Maybe"). Used when `multiSeriesValueLabel` is true. */ multiSeriesMaxLabelWidth?: number; } export interface ChartLayoutResult { strokeWidth: number; padding: ChartPadding; } export declare function resolveChartLayout(config: ChartLayoutConfig): ChartLayoutResult; //# sourceMappingURL=resolveChartLayout.d.ts.map