import { ReactiveController, ReactiveElement } from 'lit';
export interface KeyNavigationGridConfig {
    keyNavGrid?: HTMLElement;
    columnRow?: HTMLElement;
    columns?: NodeListOf<HTMLElement> | HTMLElement[];
    rows: NodeListOf<HTMLElement> | HTMLElement[];
    cells: NodeListOf<HTMLElement> | HTMLElement[];
}
/**
 * Given a 2d array grid structure provide keyboard navigation following aria grid spec
 * https://w3c.github.io/aria-practices/#gridNav_focus
 */
export declare function keyNavigationGrid<T extends ReactiveElement & KeyNavigationGridConfig>(): ClassDecorator;
export declare class KeyNavigationGridController<T extends ReactiveElement & KeyNavigationGridConfig> implements ReactiveController {
    private host;
    private observers;
    private get hostGrid();
    private get hostRows();
    private get hostCells();
    private get activeCell();
    constructor(host: T);
    hostConnected(): Promise<void>;
    hostDisconnected(): void;
    private clickCell;
    private keynavCell;
    private setActiveCell;
    private updateCellActivation;
}
