Veteran Pakistan all-rounder Mohammad Hafeez, who captained his national team in every format of the game, announced his retirement from international cricket on Monday, saying that he achieved more than he could ever imagine during a career spanning nearly two decades.