import { ScaleContinuousNumeric } from 'd3-scale'; import { default as React } from 'react'; type HeightRange = number; type ColumnScale = ScaleContinuousNumeric | any; type ColumnScaleClamped = ScaleContinuousNumeric; export declare interface ColumnDivision { section_id: string; id: number; surface: number; bottom: number; top: number; flooding_surface_order?: number; grainsize?: string; covered?: boolean; definite_boundary?: boolean; facies?: string; } declare enum ColumnAxisType { AGE = "age", HEIGHT = "height", DEPTH = "depth", ORDINAL = "ordinal" } export interface ColumnCtx { divisions: T[]; scaleClamped: ColumnScaleClamped; pixelsPerMeter: number; scale: ColumnScale; axisType?: ColumnAxisType; pixelHeight?: number; zoom: number; /** True while the column's scale/age-window is being animated. Consumers can * use this to skip expensive per-frame recalculations (e.g. label * measurement, `foreignObject` reflows) and restore them once settled. */ isTransitioning: boolean; /** When true, unit labels are hidden while `isTransitioning` (a perf escape * hatch). Defaults to false — labels stay visible through the animation. */ hideLabelsWhileTransitioning: boolean; } export declare const ColumnContext: React.Context>; export interface ColumnProviderProps { pixelsPerMeter?: number; divisions: T[]; range?: HeightRange | any; height?: number; zoom?: number; width?: number; axisType?: ColumnAxisType; children?: any; scale?: ColumnScale; /** True while the column's scale/age-window is being animated. */ isTransitioning?: boolean; /** Hide unit labels while transitioning (perf escape hatch; default false). */ hideLabelsWhileTransitioning?: boolean; } declare function ColumnProvider(props: ColumnProviderProps): React.FunctionComponentElement>>; declare const useColumn: () => ColumnCtx; declare const useColumnDivisions: () => ColumnDivision[]; export { ColumnProvider, ColumnAxisType, useColumnDivisions, useColumn };