GNU Emacs Lisp Reference Manual
The editor command loop reads keyboard input using the function read-key-sequence, which uses read-event. These and other functions for keyboard input are also available for use in Lisp programs. See also momentary-string-display in Temporary Displays, and sit-for in Waiting. See Terminal Input, for functions and variables for controlling terminal input modes and debugging terminal input.
For higher-level input facilities, see Minibuffers.