Function initAppState: (opt: { canvas: HTMLCanvasElement touchToMouse?: boolean gamepads?: Record<string, GamepadDef> pixelDensity?: number maxFPS?: number buttons?: ButtonsDef }) => { canvas: HTMLCanvasElement buttons: ButtonsDef buttonsByKey: Map<Key, string[]> buttonsByMouse: Map<MouseButton, string[]> buttonsByGamepad: Map<KGamepadButton, string[]> buttonsByKeyCode: Map<string, string[]> loopID: null | number stopped: boolean dt: number fixedDt: number restDt: number time: number realTime: number fpsCounter: FPSCounter timeScale: number skipTime: boolean isHidden: boolean numFrames: number capsOn: boolean mousePos: Vec2 mouseDeltaPos: Vec2 keyState: ButtonState<Key> mouseState: ButtonState<MouseButton> mergedGamepadState: GamepadState gamepadStates: Map<number, GamepadState> lastInputDevice: "mouse" | "keyboard" | "gamepad" | null buttonState: ButtonState<string> gamepads: KGamepad[] charInputted: string[] isMouseMoved: boolean lastWidth: number lastHeight: number events: KEventHandler<AppEventMap> }