import { Component, ReactNode } from "react";
import { WellLog } from "./components/WellLogTypes";
import { Template } from "./components/WellLogTemplateTypes";
import { ColorTable } from "./components/ColorTableTypes";
import { WellLogController } from "./components/WellLogView";
import { LogViewer } from "@equinor/videx-wellog";
import { Info, InfoOptions } from "./components/InfoTypes";
interface Props {
    welllogs: WellLog[];
    templates: Template[];
    colorTables: ColorTable[];
    horizontal?: boolean;
    syncTrackPos?: boolean;
    syncContentDomain?: boolean;
    syncContentSelection?: boolean;
    syncTemplate?: boolean;
    hideTitles?: boolean;
    hideLegend?: boolean;
    domain?: [number, number];
    selection?: [number | undefined, number | undefined];
    readoutOptions?: InfoOptions;
    onContentRescale?: () => void;
    onContentSelection?: () => void;
    onTemplateChanged?: () => void;
    onCreateController?: (controller: WellLogController) => void;
}
interface State {
    axes: string[];
    primaryAxis: string;
    infos: Info[][];
    sliderValue: number;
}
declare class SyncLogViewer extends Component<Props, State> {
    static propTypes: Record<string, unknown>;
    controllers: (WellLogController | null)[];
    collapsedTrackIds: (string | number)[];
    onCreateControllerBind: ((controller: WellLogController) => void)[];
    onInfoBind: ((x: number, logController: LogViewer, iFrom: number, iTo: number) => void)[];
    onTrackScrollBind: (() => void)[];
    onTrackSelectionBind: (() => void)[];
    onContentRescaleBind: (() => void)[];
    onContentSelectionBind: (() => void)[];
    onTemplateChangedBind: (() => void)[];
    constructor(props: Props);
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: Props, nextState: State): boolean;
    componentDidUpdate(prevProps: Props): void;
    updateReadoutPanel(): void;
    onInfo(iView: number, x: number, logController: LogViewer, iFrom: number, iTo: number): void;
    onCreateController(iView: number, controller: WellLogController): void;
    onTrackScroll(iView: number): void;
    onTrackSelection(iView: number): void;
    onContentRescale(iView: number): void;
    onContentSelection(iView: number): void;
    onTemplateChanged(iView: number): void;
    onChangePrimaryAxis(value: string): void;
    onZoomSliderChange(value: number): void;
    onScrollerScroll(iView: number, x: number, y: number): void;
    setSliderValue(): void;
    syncTrackScrollPos(iView: number): void;
    syncTrackSelection(iView: number): void;
    getCommonContentBaseDomain(): [number, number];
    syncContentBaseDomain(): void;
    syncContentScrollPos(iView: number): void;
    syncContentSelection(iView: number): void;
    syncTemplate(iView: number): void;
    setControllersZoom(): void;
    setControllersSelection(): void;
    onInfoGroupClick(trackId: string | number): void;
    render(): ReactNode;
}
export default SyncLogViewer;
