Amid widespread coverage of his reported remarks at a private meeting with lawmakers to discuss immigration on Thursday, Mr Trump on Friday tweeted his language at the meeting “was tough, but this was not the language used”.

The Washington Post, the New York Times, Politico and the Wall Street Journal all reported the comments on Thursday, quoting witnesses or people briefed on the meeting. The White House did not deny them.

“I cannot believe that in the history of the White House, in that Oval Office, any president has ever spoken the words that I personally heard our president speak yesterday,” Mr Durbin told reporters on Friday.

BREAKING: Democrat Sen. Durbin, who was in meeting with Pres. Trump: “He said these hate-filled things.” https://t.co/yUHQuZIOCm pic.twitter.com/s9fMhtcguR

End of Twitter post by @MSNBC

Mr Trump’s reported remarks came as both Republican and Democratic lawmakers visited him on Thursday to propose a deal on immigration.

Mr Trump was said to have told them that instead of granting temporary residency to citizens of countries hit by natural disasters, war or epidemics, the US should instead be taking in migrants from countries like Norway.

“Why are we having all these people from shithole countries come here?” the Washington Post quoted him as saying, in remarks thought to be about Haiti, El Salvador and Africa.

Mr Durbin said that when Mr Trump was told that the largest groups of immigrants with Temporary Protected Status (TPS) were from El Salvador, Honduras and Haiti, the president responded: “Haitians? Do we need more Haitians?”

But in another tweet on Friday the president denied that he insulted Haitians.

Never said anything derogatory about Haitians other than Haiti is, obviously, a very poor and troubled country. Never said “take them out.” Made up by Dems. I have a wonderful relationship with Haitians. Probably should record future meetings – unfortunately, no trust!

End of Twitter post by @realDonaldTrump

Hang in there Mr. President @realDonaldTrump. If those countries aren’t as you described, Democrats should be happy to deport criminal aliens back to them. &End #AnchorBabies, too.

End of Twitter post by @SteveKingIA

In recent weeks, the Trump administration has been trying to limit the number of family members of immigrants who can enter the US, and has moved to end the protected status of thousands already in the country.

The meeting on Thursday was called to discuss a bipartisan proposal that would impose new restrictions but protect the so-called “Dreamers” – hundreds of thousands immigrants brought to the US illegally as children – from deportation.

Lawmakers reportedly proposed restoring TPS permits for certain countries, allowing their residents to remain because their home countries are temporarily unsafe for them.

To try to secure presidential approval, the lawmakers were said to have earmarked $1.5bn (£1.1bn) for a wall that Mr Trump wants built on the US border with Mexico.

On Friday, Mr Trump tweeted that the deal offered to him was “a big step backwards” that would not “properly” fund the wall and would force the US to take “large numbers of people from high-crime countries which are doing badly”.

He wrote that he wanted “a merit-based system of immigration and people who will help take our country to the next level”.

This week the Trump administration announced it was withdrawing TPS from more than 200,000 people from El Salvador who were granted provisional residency after an earthquake devastated the Central American country in 2001.

TPS permits have already been withdrawn from Haitians and Nicaraguans.

The Washington Post broke the story with the word “shithole” in its headline and in the alert that the paper sent out to followers’ smartphones.

On US TV, some broadcasters gave content warnings or avoided saying the word altogether. Fox News used asterisks to obscure the offensive word along the bottom of the screen, but CNN and MSNBC carried it in full.

Around the world, journalists reporting in other languages faced the question of how to translate what Mr Trump had said.

The president denies using the language but a Democratic senator says he heard “racist” words.