interface ConfigOptions { useCanvas?: boolean; } type Accessor = Out | string | ((obj: In) => Out); type RangeAccessor = Accessor; interface Range { start: number; length: number; } type NumFormatter = (num: number) => string; declare class HilbertChart { constructor(element: HTMLElement, configOptions?: ConfigOptions); width(): number; width(width: number): HilbertChart; margin(): number; margin(px: number): HilbertChart; hilbertOrder(): number; hilbertOrder(height: number): HilbertChart; data(): Range[]; data(data: Range[]): HilbertChart; rangeLabel(): RangeAccessor; rangeLabel(textAccessor: RangeAccessor): HilbertChart; rangeLabelColor(): RangeAccessor; rangeLabelColor(colorAccessor: RangeAccessor): HilbertChart; rangeColor(): RangeAccessor; rangeColor(colorAccessor: RangeAccessor): HilbertChart; rangePadding(): RangeAccessor; rangePadding(paddingAccessor: RangeAccessor): HilbertChart; rangePaddingAbsolute(): RangeAccessor; rangePaddingAbsolute(paddingAccessor: RangeAccessor): HilbertChart; valFormatter(): NumFormatter; valFormatter(formatter: NumFormatter): HilbertChart; focusOn(pos:number, length: number, ms?: number): HilbertChart; showValTooltip(): boolean; showValTooltip(show: boolean): HilbertChart; showRangeTooltip(): boolean; showRangeTooltip(show: boolean): HilbertChart; rangeTooltipContent(): RangeAccessor; rangeTooltipContent(contentAccessor: RangeAccessor): HilbertChart; enableZoom(): boolean; enableZoom(enable: boolean): HilbertChart; onRangeClick(cb: (range: Range) => void): HilbertChart; onRangeHover(cb: (range: Range | null) => void): HilbertChart; onPointerMove(cb: (value: number, event: MouseEvent) => void): HilbertChart; onZoom(callback: (transform: {k: number, x: number, y: number}) => void): HilbertChart; onZoomEnd(callback: (transform: {k: number, x: number, y: number}) => void): HilbertChart; } export { HilbertChart as default }; export type { ConfigOptions, Range };