/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once namespace Main { class Session; } // namespace Main class History; class PhotoData; class DocumentData; struct FilePrepareResult; namespace MTP { class Error; } // namespace MTP namespace Data { class LocationPoint; } // namespace Data namespace Api { struct MessageToSend; struct SendAction; void SendWebDocument( MessageToSend &&message, not_null document, std::optional localMessageId = std::nullopt, Fn doneCallback = nullptr, bool forwarding = false); void SendExistingDocument( MessageToSend &&message, not_null document, std::optional localMessageId = std::nullopt, Fn doneCallback = nullptr, bool forwarding = false); void SendExistingPhoto( MessageToSend &&message, not_null photo, std::optional localMessageId = std::nullopt, Fn doneCallback = nullptr, bool forwarding = false); bool SendDice( MessageToSend &message, Fn doneCallback = nullptr, bool forwarding = false); void FillMessagePostFlags( const SendAction &action, not_null peer, MessageFlags &flags); void SendConfirmedFile( not_null session, const std::shared_ptr &file); void SendLocationPoint( const Data::LocationPoint &data, const SendAction &action, Fn done, Fn fail); } // namespace Api