Former South Africa Test captain AB de Villiers said he had “run out of gas” as he announced his retirement from international cricket.
The 34-year-old has played in 114 Test matches, 228 one-day internationals and 78 Twenty20 matches for the Proteas.
He took time away from Test cricket in 2017, missing the series against England that summer, but returned to the red-ball side in December.
“This is a tough decision. I’ve thought long and hard about it and I’d like to retire still playing decent cricket.
De Villiers made his international debut in the Test series against England in 2004 and played in a limited-overs match a year later.
He scored 8,765 Test runs for South Africa and has a batting average of over 50 in both Test and ODI cricket.
A former Test captain, he holds the record for the fastest one-day century, reaching three figures in just 31 balls against West Indies in January 2015.
He also holds the record for the fastest Test century by a South African, making 100 from 75 balls against India in 2011.