import type { KeyEvent, Renderable } from "@opentui/core"; import { type Keymap, type Layer, type ReactiveMatcher, type TargetMode } from "../index.js"; import { type Accessor, type JSX } from "solid-js"; type OpenTuiKeymap = Keymap; export interface KeymapProviderProps { keymap: OpenTuiKeymap; children: JSX.Element; } export declare function KeymapProvider(props: KeymapProviderProps): JSX.Element; export type UseBindingsTarget = () => TRenderable | null | undefined; export interface UseBindingsLayer extends Omit, "target" | "targetMode"> { target?: UseBindingsTarget; targetMode?: TargetMode; } export declare const useKeymap: () => OpenTuiKeymap; /** * Reactively derives any view from the current keymap by re-running `selector` * on each batched keymap state change. */ export declare const useKeymapSelector: (selector: (keymap: OpenTuiKeymap) => T) => Accessor; export declare function useBindings(createLayer: () => UseBindingsLayer): void; /** * Adapts a Solid accessor to `ReactiveMatcher`. The subscription * lives in a disposable reactive root so unregistering the layer tears it * down. Pass `predicate` when the accessor value is not already boolean. */ export declare function reactiveMatcherFromSignal(accessor: Accessor, predicate?: (value: T) => boolean): ReactiveMatcher; export {};