import { IExceptionContext, ITableSection } from 'lineupengine';
import { IGroupData, IGroupItem, Ranking } from '../model';
import { IRankingHeaderContextContainer, EMode } from './interfaces';
export interface ISlopeGraphOptions {
    mode: EMode;
}
export default class SlopeGraph implements ITableSection {
    readonly header: HTMLElement;
    readonly body: HTMLElement;
    readonly id: string;
    private readonly ctx;
    readonly node: SVGSVGElement;
    private leftSlopes;
    private rightSlopes;
    private readonly pool;
    private scrollListener;
    readonly width: number;
    readonly height = 0;
    private current;
    private chosen;
    private chosenSelectionOnly;
    private _mode;
    constructor(header: HTMLElement, body: HTMLElement, id: string, ctx: IRankingHeaderContextContainer, options?: Partial<ISlopeGraphOptions>);
    init(): void;
    private initHeader;
    mode: EMode;
    hidden: boolean;
    hide(): void;
    show(): void;
    destroy(): void;
    rebuild(leftRanking: Ranking, left: (IGroupItem | IGroupData)[], leftContext: IExceptionContext, rightRanking: Ranking, right: (IGroupItem | IGroupData)[], rightContext: IExceptionContext): void;
    private computeSlopes;
    private prepareRightSlopes;
    private revalidate;
    highlight(dataIndex: number): boolean | undefined;
    private onScrolledVertically;
    private choose;
    private chooseSelection;
    private updatePath;
    private render;
    private addPath;
    private matchLength;
    updateSelection(selectedDataIndices: Set<number>): void;
}
