import { ReactiveController, ReactiveElement } from 'lit';
import { KeynavCode } from '../utils/dom.js';
export interface KeynavListConfig {
    items: NodeListOf<HTMLElement> | HTMLElement[];
    layout?: 'both' | 'horizontal' | 'vertical';
    manageFocus?: boolean;
    manageTabindex?: boolean;
    loop?: boolean;
    dir?: string | null;
}
export interface KeynavListElement {
    keynavListConfig: KeynavListConfig;
}
/** https://webaim.org/techniques/keyboard/ */
export declare function keyNavigationList<T extends ReactiveElement & KeynavListElement>(): ClassDecorator;
export declare class KeyNavigationListController<T extends ReactiveElement & KeynavListElement> implements ReactiveController {
    #private;
    private host;
    constructor(host: T);
    hostConnected(): Promise<void>;
    hostDisconnected(): void;
}
interface KeyListConfig {
    code: KeynavCode;
    loop?: boolean;
    layout?: 'horizontal' | 'vertical' | 'both';
    dir: string | null | undefined;
}
export declare function getNextKeyListItem(item: HTMLElement, items: HTMLElement[], config: KeyListConfig): {
    next: number;
    previous: number;
};
export {};
