import { KeyboardLayout } from './layouts';
import type { HotkeysHandler, TriggerEvent } from './type';
interface HotkeysParams {
    element: HTMLElement;
    keyboard?: KeyboardLayout;
    autoWatchKeys?: boolean;
    autoPreventDefault?: boolean;
    watchCaps?: boolean;
}
declare type HotkeysCallback = {
    unbind: () => void;
};
declare type HotkeysOptions = {
    scope?: string;
    order?: number;
    event?: TriggerEvent;
};
declare function createHotkeys({ element, keyboard: defaultKeyboard, autoWatchKeys, watchCaps, autoPreventDefault, }: HotkeysParams): {
    hotkeys: {
        (key: string | string[], scope: string, handler: HotkeysHandler): HotkeysCallback;
        (key: string | string[], options: HotkeysOptions, handler: HotkeysHandler): HotkeysCallback;
        (key: string | string[], handler: HotkeysHandler, options?: HotkeysOptions): HotkeysCallback;
    };
    watchKeys: () => () => void;
    unbindAll: () => void;
    unbind: (key?: string, scope?: string) => void;
    getScope: () => string;
    setScope: (scope: string) => void;
    getKeysDown: () => Set<string>;
    getKeyboardLayout: () => KeyboardLayout;
    setKeyboardLayout: (layout: KeyboardLayout) => void;
    setVerbose: (value: boolean) => void;
    setEventFilter: (filter: (event: KeyboardEvent) => boolean) => void;
    getPressedKeyStrings: () => string[];
    trigger: (key: string, scope?: string) => void;
    isPressed: (key: string) => boolean;
};
export { createHotkeys };
