import { DependencyList } from 'react'; import { JSX } from 'react/jsx-runtime'; import { ReactNode } from 'react'; import { RefCallback } from 'react'; declare type EventListenerOptions_2 = { capture?: boolean; once?: boolean; passive?: boolean; signal?: AbortSignal; } | boolean; declare type FormTags = 'input' | 'textarea' | 'select' | 'INPUT' | 'TEXTAREA' | 'SELECT' | 'searchbox' | 'slider' | 'spinbutton' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'option' | 'radio' | 'textbox'; declare type Hotkey = KeyboardModifiers & { keys?: readonly string[]; scopes?: Scopes; description?: string; isSequence?: boolean; hotkey: string; metadata?: Record; }; export declare type HotkeyCallback = (keyboardEvent: KeyboardEvent, hotkeysEvent: HotkeysEvent) => void; declare type HotkeysContextType = { hotkeys: ReadonlyArray; activeScopes: string[]; toggleScope: (scope: string) => void; enableScope: (scope: string) => void; disableScope: (scope: string) => void; }; declare type HotkeysEvent = Hotkey; export declare const HotkeysProvider: ({ initiallyActiveScopes, children }: Props) => JSX.Element; export declare function isHotkeyPressed(key: string | readonly string[], delimiter?: string): boolean; declare type KeyboardModifiers = { alt?: boolean; ctrl?: boolean; meta?: boolean; shift?: boolean; mod?: boolean; useKey?: boolean; }; export declare type Keys = string | readonly string[]; export declare type Options = { enabled?: Trigger; enableOnFormTags?: readonly FormTags[] | boolean; enableOnContentEditable?: boolean; ignoreEventWhen?: (e: KeyboardEvent) => boolean; splitKey?: string; delimiter?: string; scopes?: Scopes; keyup?: boolean; keydown?: boolean; preventDefault?: Trigger; description?: string; document?: Document; ignoreModifiers?: boolean; eventListenerOptions?: EventListenerOptions_2; useKey?: boolean; sequenceTimeoutMs?: number; sequenceSplitKey?: string; metadata?: Record; }; declare type OptionsOrDependencyArray = Options | DependencyList; declare interface Props { initiallyActiveScopes?: string[]; children: ReactNode; } declare type Scopes = string | readonly string[]; declare type Trigger = boolean | ((keyboardEvent: KeyboardEvent, hotkeysEvent: HotkeysEvent) => boolean); export declare function useHotkeys(keys: Keys, callback: HotkeyCallback, options?: OptionsOrDependencyArray, dependencies?: OptionsOrDependencyArray): RefCallback; export declare const useHotkeysContext: () => HotkeysContextType; export declare function useRecordHotkeys(useKey?: boolean, blacklist?: string[]): readonly [Set, { readonly start: () => void; readonly stop: () => void; readonly resetKeys: () => void; readonly isRecording: boolean; }]; export { }