import { default as Module } from '../../core/Module';
import { default as Tabulator } from '../../core/Tabulator';

type Binding = {
    action: (this: Keybindings, e: KeyboardEvent) => void;
    ctrl: boolean;
    keys: number[];
    meta: boolean;
    shift: boolean;
};
export default class Keybindings extends Module {
    static readonly moduleName = "keybindings";
    static readonly bindings: {
        navDown: number;
        navLeft: number;
        navNext: number;
        navPrev: string;
        navRight: number;
        navUp: number;
        scrollPageDown: number;
        scrollPageUp: number;
        scrollToEnd: number;
        scrollToStart: number;
    };
    static readonly actions: Record<string, (this: Keybindings, e: KeyboardEvent) => void>;
    watchKeys: Record<number, Binding[]> | null;
    pressedKeys: number[] | null;
    keyupBinding: ((e: KeyboardEvent) => void) | false;
    keydownBinding: ((e: KeyboardEvent) => void) | false;
    constructor(table: Tabulator);
    initialize(): void;
    mapBindings(bindings: Record<string, any>): void;
    mapBinding(action: string, symbolsList: string | number): void;
    bindEvents(): void;
    clearBindings(): void;
    checkBinding(e: KeyboardEvent, binding: Binding): boolean;
}
export {};
