I still observe that typings in this lib are not perfect and still face issues with bad types definitions.
Maintaining typings in the separeted file is difficult and leads to errors because they're not deeply tested.
Also, using TS might allow eliminate many bugs and make the developing core more confident.
@osdnk I can help with this but I'm not sure if you would like to rewrite the whole package in one PR or partially?
I'll happily rewrite everything at once. It's not a lot of code and I think it would be difficult to do it gradually.
Related to #829
@dsznajder Is this in progress? If not, @osdnk I would like to do this task.
I tried to do it, there's some progress on that.
The biggest problem right now is a disparity between types and js code (i.e. AnimatedValue extends InternalAnimatedValue and not AnimatedNode like in types) but I didn't have time to fix it yet.
You can check out my branch to see progress.
I think I have v2 rebased version locally, so I'll update it shortly.
Edit: actually, give me a few days to do it 馃槃
Not sure about v1, but v2 can definitely be rewritten in TS (as well as web version). Not that many code should be written :)
Not sure if this is directly related, but the following code:

makes TypeScript complain:
Type 'true' is not assignable to type 'false'. ts(2322)
It's not, please open another issue.
@mrousavy Same thing with useState(0), where you won't be able to assign a non-zero number.
You can workaround like this:
const hasBeenSwiped = useSharedValue(false as boolean);
or
const [state, setState] = useState(0 as number);
@yolpsoftware is right. You can do this too
const hasBeenSwiped = useSharedValue<boolean>(false);
Most helpful comment
I'll happily rewrite everything at once. It's not a lot of code and I think it would be difficult to do it gradually.