Speaking at a televised cabinet meeting in Washington DC, the US president said: “I personally asked President Putin not to fire into Kyiv and the various towns for a week, and he agreed to do that.”

“It was very nice. A lot of people said, ‘Don’t waste the call, you’re not going to get that.’ And he [Putin] did it,” Trump added.

The Ukrainians, he said, “almost they didn’t believe it, but they were very happy about it because they are struggling badly”.

Later on Thursday, in a post on social media, Zelensky said Trump had made an “important statement” about “the possibility of providing security for Kyiv and other Ukrainian cities during this extreme winter period”.

“Our teams discussed this in the United Arab Emirates (UAE). We expect the agreements to be implemented,” he said.

The BBC understands that Ukraine has agreed to mirror Moscow’s actions – pausing its own attacks on Russian oil refineries in response.

Last week, Russian, Ukrainian and US negotiators met in the UAE for the first trilateral talks since the war began.

All sides described the talks as constructive, but there has been no announcement that Russia had agreed to pause its attacks for the duration of the extreme cold currently gripping the region.

Instead, attacks have continued, crippling the power supply to major Ukrainian cities, leaving millions without heating or electricity.

Electrical companies carry out round-the-clock repairs, but their work can be quickly undone by Russian air attacks.

Even when power is restored, the supply only lasts a few hours – enough to charge appliances but not to substantially warm up homes.