class_docstr: A container for a set of key bindings.
  
  Example usage::
  
      kb = KeyBindings()
  
      @kb.add('c-t')
      def _(event):
          print('Control-T pressed')
  
      @kb.add('c-a', 'c-b')
      def _(event):
          print('Control-A pressed, followed by Control-B')
  
      @kb.add('c-x', filter=is_searching)
      def _(event):
          print('Control-X pressed')  # Works only if we are searching.
code: def _clear_cache(self) -> None:
      self.__version += 1
      self._get_bindings_for_keys_cache.clear()
      self._get_bindings_starting_with_keys_cache.clear()
  
imports: from __future__ import annotations
  from abc import ABCMeta, abstractmethod, abstractproperty
  from inspect import isawaitable
  from typing import TYPE_CHECKING, Any, Callable, Coroutine, Hashable, Sequence, Tuple, TypeVar, Union, cast
  from prompt_toolkit.cache import SimpleCache
  from prompt_toolkit.filters import FilterOrBool, Never, to_filter
  from prompt_toolkit.keys import KEY_ALIASES, Keys
label_desc: Use image node_id 2 for calling the KeyBindings obj's underlying member method code with example usage: obj._clear_cache() without return types