initAppState(opt: canvas: HTMLCanvasElementtouchToMouse?: booleangamepads?: Record<string, GamepadDef>pixelDensity?: numbermaxFPS?: numberbuttons?: ButtonsDef): canvas: HTMLCanvasElementbuttons: ButtonsDefbuttonsByKey: Map<Key, string[]>buttonsByMouse: Map<MouseButton, string[]>buttonsByGamepad: Map<KGamepadButton, string[]>buttonsByKeyCode: Map<string, string[]>loopID: null | numberstopped: booleandt: numberfixedDt: numberrestDt: numbertime: numberrealTime: numberfpsCounter: FPSCountertimeScale: numberskipTime: booleanisHidden: booleannumFrames: numbermousePos: Vec2mouseDeltaPos: Vec2keyState: ButtonState<Key>mouseState: ButtonState<MouseButton>mergedGamepadState: GamepadStategamepadStates: Map<number, GamepadState>lastInputDevice: mouse | keyboard | gamepad | nullbuttonState: ButtonState<string>gamepads: KGamepad[]charInputted: string[]isMouseMoved: booleanlastWidth: numberlastHeight: numberevents: KEventHandler<AppEventMap>