export declare type MenuDirection = "horizontal" | "vertical" | "bidirectional";
export interface IPropTypes<T> {
    direction?: MenuDirection;
    onFocus(item: T): void;
    onBlur(item: T): void;
    setActiveFirst?(item: T): void;
    setActiveLast?(item: T): void;
    onKeyPress?(item: T, key: string): boolean;
}
export interface IDirectionKeymap {
    primaryNext: string;
    primaryPrev: string;
}
export default class SwrveFocusManager<T> {
    protected index: number;
    protected items: ReadonlyArray<T>;
    protected props: IPropTypes<T>;
    constructor(items: ReadonlyArray<T>, props: IPropTypes<T>);
    onFocus(): void;
    onBlur(): void;
    onKeyPress(key: string): boolean;
    setItems(items: ReadonlyArray<T>): void;
    getItems(): ReadonlyArray<T>;
    getCurrentIndex(): number;
    setActiveItem(index: number): boolean;
    setActiveFirst(): void;
    setActiveLast(): void;
    protected handleDirection(keymap: IDirectionKeymap, key: string): boolean;
}
