import { OnDestroy } from '@angular/core';
import { BehaviorSubject, Subject } from 'rxjs';
import { SankeyNodeLink } from './interfaces/node-link.interface';
import * as i0 from "@angular/core";
export declare class SankeyFocusManager<T> implements OnDestroy {
    /** Store the node that can currently be tabbed to */
    active$: BehaviorSubject<SankeyNodeLink<T>>;
    /** Emit whenever an item should receive focus */
    focused$: Subject<SankeyNodeLink<T>>;
    /** Store the nodes  */
    private _nodes;
    /** Get the current active item */
    private get _active();
    ngOnDestroy(): void;
    /** Update the list of possible nodes */
    setNodes(nodes: ReadonlyArray<SankeyNodeLink<T>>): void;
    /** Set the current active item */
    setActiveItem(node: SankeyNodeLink<T>): void;
    /** Handle keyboard input from nodes */
    onKeydown(event: KeyboardEvent): void;
    private setFocusedItem;
    private shiftFocusVertically;
    /** Shift the focus to a node in a sibling column */
    private shiftFocusHorizontally;
    /** Get a list of nodes that are in a given column */
    private getNodesInColumn;
    /** Sort the nodes based on the Y position */
    private getNodesInOrder;
    /** Determine whether or not there is a not that is tabbable */
    private hasActiveNode;
    static ɵfac: i0.ɵɵFactoryDeclaration<SankeyFocusManager<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SankeyFocusManager<any>>;
}
