import type { Binding, KeyLike, KeymapEvent } from "../types.js"; export type BindingConfigItem = KeyLike | Binding; export type BindingValue = false | "none" | BindingConfigItem | readonly BindingConfigItem[]; export type BindingConfig = Readonly>>; export type BindingCommandMap = Readonly>; export interface BindingDefaultsContext { command: string; binding: Readonly>; } export type BindingDefaults = (ctx: BindingDefaultsContext) => Readonly> | void; export interface CreateBindingLookupOptions { commandMap?: BindingCommandMap; bindingDefaults?: BindingDefaults; } export interface BindingLookup { readonly bindings: readonly Binding[]; get(command: string): readonly Binding[]; has(command: string): boolean; gather(name: string, commands: readonly string[]): readonly Binding[]; pick(name: string, commands: readonly string[]): Binding[]; omit(name: string, commands: readonly string[]): Binding[]; invalidate(name?: string): void; update(config?: BindingConfig): void; } export declare function createBindingLookup(config: BindingConfig, options?: CreateBindingLookupOptions): BindingLookup;