Twenty eight people have been killed with 60 others injured after two explosions hit Istanbul's Ataturk airport, the Turkish city governor Vasip Sahin said.
Bekir Bozdag, the Turkish justice minister, said that according to preliminary information, "a terrorist at the international terminal entrance first opened fire with a Kalashnikov and then blew himself up".
Another official said two attackers detonated explosives at the entrance of the international terminal after police fired at them
The official said he was citing information from the interior ministry. It was not immediately clear why his account of the number of attackers was different to the justice minister's.
The official said the attackers blew themselves up before entering the X-ray security check at the airport entrance.
Turkish airports have security checks both at the entrance of terminal buildings and then later before entry to departure gates.
Witness Ercan Ceyhan told CNN-Turk that he saw some 30 ambulances enter the airport.
The private DHA news agency said the wounded, among them police officers, were being transferred to Bakirkoy State Hospital.
A British Foreign Office spokesman said: "We are in close contact with authorities in Istanbul and urgently seeking further information following an incident at Ataturk airport.
"Our staff in Istanbul and London stand ready to support any British nationals affected."
Turkey has suffered several bombings in recent months linked to Kurdish or Islamic State militants.
The bombings included two in Istanbul targeting tourists - which the authorities have blamed on Islamic State.
The attacks have increased in scale and frequency, scaring off tourists and hurting the economy, which relies heavily on tourism revenues.
British Airways passengers on flight BA680 from London Heathrow to Ataturk were returned to the UK in the wake of the blasts.
The flight had been due to land at around 11.40pm local time (9.40pm BST), shortly after the explosions.
A BA spokesman said: "We had one flight to Ataturk airport that has turned around and is coming back to London Gatwick. We don't have any other services scheduled today and we will keep the situation under review."