The 33-year-old paceman has not played a Test in almost two years and said in a letter to the Sri Lankan board that he was retiring with “immediate effect”.
“I hope it will allow me to better prepare for ODI and T20 cricket, which I would like to continue playing for Sri Lanka subject to good performance and selection,” he said.
Kulasekara made his Test debut against New Zealand in 2005 and went on to play 21 Tests, capturing 48 wickets.
His best match figures were 8-58 against Pakistan at Colombo in 2009, while his highest score with the bat was 64 against England at Lord’s in 2006. His last Test appearance, in 2014, was also against England at Lord’s although he has remained a regular fixture in Sri Lanka’s one-day international and Twenty20 line-ups. He has so far played 173 ODIs and was ranked as the number one bowler in the world in March 2009.
Kulasekara has also played 50 T20 internationals, including the recent World Cup in India.