import { RcsbD3Manager } from "./RcsbD3/RcsbD3Manager";
import { RcsbFvContextManager } from "../RcsbFv/RcsbFvContextManager/RcsbFvContextManager";
import { RcsbDisplayInterface } from "./RcsbDisplay/RcsbDisplayInterface";
import { RcsbFvTrackDataElementInterface } from "../RcsbDataManager/RcsbDataManager";
import { RcsbSelection } from "./RcsbSelection";
import { Subject } from "rxjs";
import { RcsbScaleInterface } from "./RcsbD3/RcsbD3ScaleFactory";
export interface LocationViewInterface {
    from: number;
    to: number;
}
export declare class RcsbBoard {
    readonly d3Manager: RcsbD3Manager;
    private readonly domId;
    private readonly boardDiv;
    private _width;
    private _bgColor;
    private _innerPadding;
    private tracks;
    private highlightHoverElementFlag;
    private readonly selection;
    private readonly _xScale;
    private limits;
    private currentLocationView;
    private updateTask;
    private updateDelay;
    private upToDate;
    private isIntersecting;
    private zoomEventHandler;
    private readonly boardSubject;
    private readonly mouseHoverSubject;
    readonly elementClickSubject: Subject<{
        d?: RcsbFvTrackDataElementInterface;
        e?: MouseEvent;
    }>;
    private readonly contextManager;
    private readonly scrollEvent;
    constructor(elementId: string, xScale: RcsbScaleInterface, selection: RcsbSelection, contextManager: RcsbFvContextManager);
    removeScrollEvent(): void;
    private addSVG;
    private addMainG;
    setElementClickCallback(f: (d?: RcsbFvTrackDataElementInterface, e?: MouseEvent) => void): void;
    setHighlightHoverPosition(): void;
    addHoverCallback(f: (n: Array<RcsbFvTrackDataElementInterface>) => void): void;
    setRange(from: number, to: number): void;
    setSelection(boardId: string, mode: 'select' | 'hover'): void;
    highlightRegion(d: RcsbFvTrackDataElementInterface | null, operation: 'set' | 'add' | 'replace-last', mode: 'select' | 'hover', propFlag?: boolean): void;
    private moveSelection;
    startBoard(): void;
    private startTracks;
    reset(): void;
    setHighlightHoverElement(flag: boolean): void;
    private addHighlightHoverElement;
    addTrack(track: RcsbDisplayInterface | Array<RcsbDisplayInterface>, options?: {}): void;
    private addTrackCallbacks;
    private setBoardHeight;
    setBoardWidth(w: number): void;
    private setLocation;
    private updateAllTracks;
    private moveAllTracks;
    xScale(): RcsbScaleInterface;
    private moveBoard;
    private updateAndMove;
    private updateWithDelay;
    setScale(domId: string): void;
    getSelection(): RcsbSelection;
    private triggerScaleEvent;
    private triggerSelectionEvent;
}
