import { type Subscriber } from '@ni/fast-element';
import type { Table } from '..';
import type { TableActionMenuToggleEventDetail, TableRecord } from '../types';
import type { Virtualizer } from './virtualizer';
/**
 * Manages the keyboard navigation and focus within the table.
 * @internal
 */
export declare class KeyboardNavigationManager<TData extends TableRecord> implements Subscriber {
    private readonly table;
    private readonly virtualizer;
    private focusType;
    private headerActionIndex;
    private rowIndex;
    private cellContentIndex;
    private columnIndex;
    private focusWithinTable;
    private isCurrentlyFocusingElement;
    private focusedViaPointer;
    private readonly tableNotifier;
    private readonly virtualizerNotifier;
    private visibleRowNotifiers;
    private get inNavigationMode();
    constructor(table: Table<TData>, virtualizer: Virtualizer<TData>);
    resetFocusState(): void;
    get hasActiveRowOrCellFocus(): boolean;
    connect(): void;
    disconnect(): void;
    handleChange(source: unknown, args: unknown): void;
    onRowFocusIn(event: FocusEvent): void;
    onRowBlur(event: FocusEvent): void;
    onRowActionMenuToggle(event: CustomEvent<TableActionMenuToggleEventDetail>): void;
    private readonly onTableFocusIn;
    private focusSomethingOtherThanTheTable;
    private readonly onTableFocusOut;
    private readonly onCellActionMenuBlur;
    private readonly onCellViewFocusIn;
    private readonly onCellFocusIn;
    private readonly onCellBlur;
    private readonly onCaptureKeyDown;
    private readonly onKeyDown;
    private readonly onPointerDown;
    private readonly onPointerUpOrCancel;
    private readonly onViewportKeyDown;
    private onEnterPressed;
    private onF2Pressed;
    private onSpacePressed;
    private onLeftArrowPressed;
    private onRightArrowPressed;
    private onUpArrowPressed;
    private onPageUpPressed;
    private onHomePressed;
    private onDownArrowPressed;
    private onPageDownPressed;
    private onEndPressed;
    private handleHomeEndWithinRow;
    private onTabPressed;
    private getNextRowTabStop;
    private getNextHeaderTabStop;
    private blurAfterLastTab;
    private onMoveUp;
    private onMoveDown;
    private updateFocusStateFromActiveElement;
    private getActiveElementCellAndRow;
    private focusElement;
    private setElementFocusable;
    private setActionMenuButtonFocused;
    private setDefaultFocus;
    private scrollToAndFocusRow;
    private rowIndexIsValid;
    private focusCurrentRow;
    private focusRowElement;
    private focusHeaderElement;
    private getCurrentRowVisibleIndex;
    private getTableHeaderFocusableElements;
    private canFocusColumnHeaders;
    private getCurrentRow;
    private isRowExpanded;
    private toggleRowExpanded;
    private getContainingRow;
    private getContainingCell;
    private getContainingElement;
    private isInTable;
    private getActiveElement;
    private focusFirstInteractiveElementInCurrentCell;
    private hasRowOrCellFocusType;
    private hasHeaderFocusType;
    private trySetRowSelectionCheckboxFocus;
    private trySetColumnHeaderFocus;
    private trySetHeaderActionFocus;
    private trySetCellFocus;
    private trySetCellContentFocus;
    private trySetCellActionMenuFocus;
    private setCellActionMenuFocusState;
    private setCellContentFocusState;
    private setRowFocusState;
    private setCellFocusState;
    private setRowCellFocusState;
    private isResolvedRowType;
}
