foreseer

noun

A person who knows or predicts what will happen.