Class ButtonState: private _pressEv: private _pressRepeatEv: private _downEv: private _releaseEv: private _arg?: pressed: Set<T> pressedRepeat: Set<T> released: Set<T> down: Set<T> update() => void process(state: AppState) => void press(btn: T, state: AppState) => void pressRepeat(btn: T, state: AppState) => void release(btn: T, state: AppState) => void