import { ScaleContinuousNumeric } from 'd3-scale';
import { default as React } from 'react';
type HeightRange = number;
type ColumnScale = ScaleContinuousNumeric<HeightRange, number> | any;
type ColumnScaleClamped = ScaleContinuousNumeric<number, number>;
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<T extends ColumnDivision> {
    divisions: T[];
    scaleClamped: ColumnScaleClamped;
    pixelsPerMeter: number;
    scale: ColumnScale;
    axisType?: ColumnAxisType;
    pixelHeight?: number;
    zoom: number;
}
export declare const ColumnContext: React.Context<ColumnCtx<ColumnDivision>>;
export interface ColumnProviderProps<T extends ColumnDivision> {
    pixelsPerMeter?: number;
    divisions: T[];
    range?: HeightRange | any;
    height?: number;
    zoom?: number;
    width?: number;
    axisType?: ColumnAxisType;
    children?: any;
    scale?: ColumnScale;
}
declare function ColumnProvider<T extends ColumnDivision>(props: ColumnProviderProps<T>): React.FunctionComponentElement<React.ProviderProps<ColumnCtx<ColumnDivision>>>;
declare const useColumn: () => ColumnCtx<ColumnDivision>;
declare const useColumnDivisions: () => ColumnDivision[];
export { ColumnProvider, ColumnAxisType, useColumnDivisions, useColumn };
