prescient

Knowing or predicting something before it actually happens.