{-# LANGUAGE TypeOperators #-}

-- | TD API functions (methods) generated by tdlib-gen
module TDLib.Generated.Functions where

import Polysemy
import TDLib.Effect
import TDLib.Generated.FunArgs
import TDLib.Generated.Types
import TDLib.Types.Common

-- | Returns the current authorization state; this is an offline request. For informational purposes only. Use updateAuthorizationState instead to maintain the current authorization state
getAuthorizationState :: Member TDLib r => GetAuthorizationState -> Sem r (Error  AuthorizationState)
getAuthorizationState :: GetAuthorizationState -> Sem r (Error ∪ AuthorizationState)
getAuthorizationState = GetAuthorizationState -> Sem r (Error ∪ AuthorizationState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the parameters for TDLib initialization. Works only when the current authorization state is authorizationStateWaitTdlibParameters
setTdlibParameters :: Member TDLib r => SetTdlibParameters -> Sem r (Error  Ok)
setTdlibParameters :: SetTdlibParameters -> Sem r (Error ∪ Ok)
setTdlibParameters = SetTdlibParameters -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the database encryption key for correctness. Works only when the current authorization state is authorizationStateWaitEncryptionKey
checkDatabaseEncryptionKey :: Member TDLib r => CheckDatabaseEncryptionKey -> Sem r (Error  Ok)
checkDatabaseEncryptionKey :: CheckDatabaseEncryptionKey -> Sem r (Error ∪ Ok)
checkDatabaseEncryptionKey = CheckDatabaseEncryptionKey -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the phone number of the user and sends an authentication code to the user. Works only when the current authorization state is authorizationStateWaitPhoneNumber,
setAuthenticationPhoneNumber :: Member TDLib r => SetAuthenticationPhoneNumber -> Sem r (Error  Ok)
setAuthenticationPhoneNumber :: SetAuthenticationPhoneNumber -> Sem r (Error ∪ Ok)
setAuthenticationPhoneNumber = SetAuthenticationPhoneNumber -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Re-sends an authentication code to the user. Works only when the current authorization state is authorizationStateWaitCode and the next_code_type of the result is not null
resendAuthenticationCode :: Member TDLib r => ResendAuthenticationCode -> Sem r (Error  Ok)
resendAuthenticationCode :: ResendAuthenticationCode -> Sem r (Error ∪ Ok)
resendAuthenticationCode = ResendAuthenticationCode -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the authentication code. Works only when the current authorization state is authorizationStateWaitCode
checkAuthenticationCode :: Member TDLib r => CheckAuthenticationCode -> Sem r (Error  Ok)
checkAuthenticationCode :: CheckAuthenticationCode -> Sem r (Error ∪ Ok)
checkAuthenticationCode = CheckAuthenticationCode -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Requests QR code authentication by scanning a QR code on another logged in device. Works only when the current authorization state is authorizationStateWaitPhoneNumber
requestQrCodeAuthentication :: Member TDLib r => RequestQrCodeAuthentication -> Sem r (Error  Ok)
requestQrCodeAuthentication :: RequestQrCodeAuthentication -> Sem r (Error ∪ Ok)
requestQrCodeAuthentication = RequestQrCodeAuthentication -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Finishes user registration. Works only when the current authorization state is authorizationStateWaitRegistration
registerUser :: Member TDLib r => RegisterUser -> Sem r (Error  Ok)
registerUser :: RegisterUser -> Sem r (Error ∪ Ok)
registerUser = RegisterUser -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the authentication password for correctness. Works only when the current authorization state is authorizationStateWaitPassword
checkAuthenticationPassword :: Member TDLib r => CheckAuthenticationPassword -> Sem r (Error  Ok)
checkAuthenticationPassword :: CheckAuthenticationPassword -> Sem r (Error ∪ Ok)
checkAuthenticationPassword = CheckAuthenticationPassword -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Requests to send a password recovery code to an email address that was previously set up. Works only when the current authorization state is authorizationStateWaitPassword
requestAuthenticationPasswordRecovery :: Member TDLib r => RequestAuthenticationPasswordRecovery -> Sem r (Error  Ok)
requestAuthenticationPasswordRecovery :: RequestAuthenticationPasswordRecovery -> Sem r (Error ∪ Ok)
requestAuthenticationPasswordRecovery = RequestAuthenticationPasswordRecovery -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Recovers the password with a password recovery code sent to an email address that was previously set up. Works only when the current authorization state is authorizationStateWaitPassword
recoverAuthenticationPassword :: Member TDLib r => RecoverAuthenticationPassword -> Sem r (Error  Ok)
recoverAuthenticationPassword :: RecoverAuthenticationPassword -> Sem r (Error ∪ Ok)
recoverAuthenticationPassword = RecoverAuthenticationPassword -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the authentication token of a bot; to log in as a bot. Works only when the current authorization state is authorizationStateWaitPhoneNumber. Can be used instead of setAuthenticationPhoneNumber and checkAuthenticationCode to log in
checkAuthenticationBotToken :: Member TDLib r => CheckAuthenticationBotToken -> Sem r (Error  Ok)
checkAuthenticationBotToken :: CheckAuthenticationBotToken -> Sem r (Error ∪ Ok)
checkAuthenticationBotToken = CheckAuthenticationBotToken -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Closes the TDLib instance after a proper logout. Requires an available network connection. All local data will be destroyed. After the logout completes, updateAuthorizationState with authorizationStateClosed will be sent
logOut :: Member TDLib r => LogOut -> Sem r (Error  Ok)
logOut :: LogOut -> Sem r (Error ∪ Ok)
logOut = LogOut -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Closes the TDLib instance. All databases will be flushed to disk and properly closed. After the close completes, updateAuthorizationState with authorizationStateClosed will be sent
close :: Member TDLib r => Close -> Sem r (Error  Ok)
close :: Close -> Sem r (Error ∪ Ok)
close = Close -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Closes the TDLib instance, destroying all local data without a proper logout. The current user session will remain in the list of all active sessions. All local data will be destroyed. After the destruction completes updateAuthorizationState with authorizationStateClosed will be sent
destroy :: Member TDLib r => Destroy -> Sem r (Error  Ok)
destroy :: Destroy -> Sem r (Error ∪ Ok)
destroy = Destroy -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Confirms QR code authentication on another device. Returns created session on success
confirmQrCodeAuthentication :: Member TDLib r => ConfirmQrCodeAuthentication -> Sem r (Error  Session)
confirmQrCodeAuthentication :: ConfirmQrCodeAuthentication -> Sem r (Error ∪ Session)
confirmQrCodeAuthentication = ConfirmQrCodeAuthentication -> Sem r (Error ∪ Session)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all updates needed to restore current TDLib state, i.e. all actual UpdateAuthorizationState/UpdateUser/UpdateNewChat and others. This is especially useful if TDLib is run in a separate process. This is an offline method. Can be called before authorization
getCurrentState :: Member TDLib r => GetCurrentState -> Sem r (Error  Updates)
getCurrentState :: GetCurrentState -> Sem r (Error ∪ Updates)
getCurrentState = GetCurrentState -> Sem r (Error ∪ Updates)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the database encryption key. Usually the encryption key is never changed and is stored in some OS keychain
setDatabaseEncryptionKey :: Member TDLib r => SetDatabaseEncryptionKey -> Sem r (Error  Ok)
setDatabaseEncryptionKey :: SetDatabaseEncryptionKey -> Sem r (Error ∪ Ok)
setDatabaseEncryptionKey = SetDatabaseEncryptionKey -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the current state of 2-step verification
getPasswordState :: Member TDLib r => GetPasswordState -> Sem r (Error  PasswordState)
getPasswordState :: GetPasswordState -> Sem r (Error ∪ PasswordState)
getPasswordState = GetPasswordState -> Sem r (Error ∪ PasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the password for the user. If a new recovery email address is specified, then the change will not be applied until the new recovery email address is confirmed
setPassword :: Member TDLib r => SetPassword -> Sem r (Error  PasswordState)
setPassword :: SetPassword -> Sem r (Error ∪ PasswordState)
setPassword = SetPassword -> Sem r (Error ∪ PasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a 2-step verification recovery email address that was previously set up. This method can be used to verify a password provided by the user
getRecoveryEmailAddress :: Member TDLib r => GetRecoveryEmailAddress -> Sem r (Error  RecoveryEmailAddress)
getRecoveryEmailAddress :: GetRecoveryEmailAddress -> Sem r (Error ∪ RecoveryEmailAddress)
getRecoveryEmailAddress = GetRecoveryEmailAddress -> Sem r (Error ∪ RecoveryEmailAddress)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the 2-step verification recovery email address of the user. If a new recovery email address is specified, then the change will not be applied until the new recovery email address is confirmed.
setRecoveryEmailAddress :: Member TDLib r => SetRecoveryEmailAddress -> Sem r (Error  PasswordState)
setRecoveryEmailAddress :: SetRecoveryEmailAddress -> Sem r (Error ∪ PasswordState)
setRecoveryEmailAddress = SetRecoveryEmailAddress -> Sem r (Error ∪ PasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the 2-step verification recovery email address verification code
checkRecoveryEmailAddressCode :: Member TDLib r => CheckRecoveryEmailAddressCode -> Sem r (Error  PasswordState)
checkRecoveryEmailAddressCode :: CheckRecoveryEmailAddressCode -> Sem r (Error ∪ PasswordState)
checkRecoveryEmailAddressCode = CheckRecoveryEmailAddressCode -> Sem r (Error ∪ PasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Resends the 2-step verification recovery email address verification code
resendRecoveryEmailAddressCode :: Member TDLib r => ResendRecoveryEmailAddressCode -> Sem r (Error  PasswordState)
resendRecoveryEmailAddressCode :: ResendRecoveryEmailAddressCode -> Sem r (Error ∪ PasswordState)
resendRecoveryEmailAddressCode = ResendRecoveryEmailAddressCode -> Sem r (Error ∪ PasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Requests to send a password recovery code to an email address that was previously set up
requestPasswordRecovery :: Member TDLib r => RequestPasswordRecovery -> Sem r (Error  EmailAddressAuthenticationCodeInfo)
requestPasswordRecovery :: RequestPasswordRecovery
-> Sem r (Error ∪ EmailAddressAuthenticationCodeInfo)
requestPasswordRecovery = RequestPasswordRecovery
-> Sem r (Error ∪ EmailAddressAuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Recovers the password using a recovery code sent to an email address that was previously set up
recoverPassword :: Member TDLib r => RecoverPassword -> Sem r (Error  PasswordState)
recoverPassword :: RecoverPassword -> Sem r (Error ∪ PasswordState)
recoverPassword = RecoverPassword -> Sem r (Error ∪ PasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Creates a new temporary password for processing payments
createTemporaryPassword :: Member TDLib r => CreateTemporaryPassword -> Sem r (Error  TemporaryPasswordState)
createTemporaryPassword :: CreateTemporaryPassword -> Sem r (Error ∪ TemporaryPasswordState)
createTemporaryPassword = CreateTemporaryPassword -> Sem r (Error ∪ TemporaryPasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about the current temporary password
getTemporaryPasswordState :: Member TDLib r => GetTemporaryPasswordState -> Sem r (Error  TemporaryPasswordState)
getTemporaryPasswordState :: GetTemporaryPasswordState -> Sem r (Error ∪ TemporaryPasswordState)
getTemporaryPasswordState = GetTemporaryPasswordState -> Sem r (Error ∪ TemporaryPasswordState)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the current user
getMe :: Member TDLib r => GetMe -> Sem r (Error  User)
getMe :: GetMe -> Sem r (Error ∪ User)
getMe = GetMe -> Sem r (Error ∪ User)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a user by their identifier. This is an offline request if the current user is not a bot
getUser :: Member TDLib r => GetUser -> Sem r (Error  User)
getUser :: GetUser -> Sem r (Error ∪ User)
getUser = GetUser -> Sem r (Error ∪ User)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns full information about a user by their identifier
getUserFullInfo :: Member TDLib r => GetUserFullInfo -> Sem r (Error  UserFullInfo)
getUserFullInfo :: GetUserFullInfo -> Sem r (Error ∪ UserFullInfo)
getUserFullInfo = GetUserFullInfo -> Sem r (Error ∪ UserFullInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a basic group by its identifier. This is an offline request if the current user is not a bot
getBasicGroup :: Member TDLib r => GetBasicGroup -> Sem r (Error  BasicGroup)
getBasicGroup :: GetBasicGroup -> Sem r (Error ∪ BasicGroup)
getBasicGroup = GetBasicGroup -> Sem r (Error ∪ BasicGroup)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns full information about a basic group by its identifier
getBasicGroupFullInfo :: Member TDLib r => GetBasicGroupFullInfo -> Sem r (Error  BasicGroupFullInfo)
getBasicGroupFullInfo :: GetBasicGroupFullInfo -> Sem r (Error ∪ BasicGroupFullInfo)
getBasicGroupFullInfo = GetBasicGroupFullInfo -> Sem r (Error ∪ BasicGroupFullInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a supergroup or a channel by its identifier. This is an offline request if the current user is not a bot
getSupergroup :: Member TDLib r => GetSupergroup -> Sem r (Error  Supergroup)
getSupergroup :: GetSupergroup -> Sem r (Error ∪ Supergroup)
getSupergroup = GetSupergroup -> Sem r (Error ∪ Supergroup)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns full information about a supergroup or a channel by its identifier, cached for up to 1 minute
getSupergroupFullInfo :: Member TDLib r => GetSupergroupFullInfo -> Sem r (Error  SupergroupFullInfo)
getSupergroupFullInfo :: GetSupergroupFullInfo -> Sem r (Error ∪ SupergroupFullInfo)
getSupergroupFullInfo = GetSupergroupFullInfo -> Sem r (Error ∪ SupergroupFullInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a secret chat by its identifier. This is an offline request
getSecretChat :: Member TDLib r => GetSecretChat -> Sem r (Error  SecretChat)
getSecretChat :: GetSecretChat -> Sem r (Error ∪ SecretChat)
getSecretChat = GetSecretChat -> Sem r (Error ∪ SecretChat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a chat by its identifier, this is an offline request if the current user is not a bot
getChat :: Member TDLib r => GetChat -> Sem r (Error  Chat)
getChat :: GetChat -> Sem r (Error ∪ Chat)
getChat = GetChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a message
getMessage :: Member TDLib r => GetMessage -> Sem r (Error  Message)
getMessage :: GetMessage -> Sem r (Error ∪ Message)
getMessage = GetMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a message, if it is available locally without sending network request. This is an offline request
getMessageLocally :: Member TDLib r => GetMessageLocally -> Sem r (Error  Message)
getMessageLocally :: GetMessageLocally -> Sem r (Error ∪ Message)
getMessageLocally = GetMessageLocally -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a message that is replied by given message
getRepliedMessage :: Member TDLib r => GetRepliedMessage -> Sem r (Error  Message)
getRepliedMessage :: GetRepliedMessage -> Sem r (Error ∪ Message)
getRepliedMessage = GetRepliedMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a pinned chat message
getChatPinnedMessage :: Member TDLib r => GetChatPinnedMessage -> Sem r (Error  Message)
getChatPinnedMessage :: GetChatPinnedMessage -> Sem r (Error ∪ Message)
getChatPinnedMessage = GetChatPinnedMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about messages. If a message is not found, returns null on the corresponding position of the result
getMessages :: Member TDLib r => GetMessages -> Sem r (Error  Messages)
getMessages :: GetMessages -> Sem r (Error ∪ Messages)
getMessages = GetMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a file; this is an offline request
getFile :: Member TDLib r => GetFile -> Sem r (Error  File)
getFile :: GetFile -> Sem r (Error ∪ File)
getFile = GetFile -> Sem r (Error ∪ File)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a file by its remote ID; this is an offline request. Can be used to register a URL as a file for further uploading, or sending as a message. Even the request succeeds, the file can be used only if it is still accessible to the user.
getRemoteFile :: Member TDLib r => GetRemoteFile -> Sem r (Error  File)
getRemoteFile :: GetRemoteFile -> Sem r (Error ∪ File)
getRemoteFile = GetRemoteFile -> Sem r (Error ∪ File)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an ordered list of chats in a chat list. Chats are sorted by the pair (order, chat_id) in decreasing order. (For example, to get a list of chats from the beginning, the offset_order should be equal to a biggest signed 64-bit number 9223372036854775807 == 2^63 - 1).
getChats :: Member TDLib r => GetChats -> Sem r (Error  Chats)
getChats :: GetChats -> Sem r (Error ∪ Chats)
getChats = GetChats -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches a public chat by its username. Currently only private chats, supergroups and channels can be public. Returns the chat if found; otherwise an error is returned
searchPublicChat :: Member TDLib r => SearchPublicChat -> Sem r (Error  Chat)
searchPublicChat :: SearchPublicChat -> Sem r (Error ∪ Chat)
searchPublicChat = SearchPublicChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches public chats by looking for specified query in their username and title. Currently only private chats, supergroups and channels can be public. Returns a meaningful number of results. Returns nothing if the length of the searched username prefix is less than 5. Excludes private chats with contacts and chats from the chat list from the results
searchPublicChats :: Member TDLib r => SearchPublicChats -> Sem r (Error  Chats)
searchPublicChats :: SearchPublicChats -> Sem r (Error ∪ Chats)
searchPublicChats = SearchPublicChats -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for the specified query in the title and username of already known chats, this is an offline request. Returns chats in the order seen in the chat list
searchChats :: Member TDLib r => SearchChats -> Sem r (Error  Chats)
searchChats :: SearchChats -> Sem r (Error ∪ Chats)
searchChats = SearchChats -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for the specified query in the title and username of already known chats via request to the server. Returns chats in the order seen in the chat list
searchChatsOnServer :: Member TDLib r => SearchChatsOnServer -> Sem r (Error  Chats)
searchChatsOnServer :: SearchChatsOnServer -> Sem r (Error ∪ Chats)
searchChatsOnServer = SearchChatsOnServer -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of users and location-based supergroups nearby. The list of users nearby will be updated for 60 seconds after the request by the updates updateUsersNearby. The request should be sent again every 25 seconds with adjusted location to not miss new chats
searchChatsNearby :: Member TDLib r => SearchChatsNearby -> Sem r (Error  ChatsNearby)
searchChatsNearby :: SearchChatsNearby -> Sem r (Error ∪ ChatsNearby)
searchChatsNearby = SearchChatsNearby -> Sem r (Error ∪ ChatsNearby)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of frequently used chats. Supported only if the chat info database is enabled
getTopChats :: Member TDLib r => GetTopChats -> Sem r (Error  Chats)
getTopChats :: GetTopChats -> Sem r (Error ∪ Chats)
getTopChats = GetTopChats -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a chat from the list of frequently used chats. Supported only if the chat info database is enabled
removeTopChat :: Member TDLib r => RemoveTopChat -> Sem r (Error  Ok)
removeTopChat :: RemoveTopChat -> Sem r (Error ∪ Ok)
removeTopChat = RemoveTopChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a chat to the list of recently found chats. The chat is added to the beginning of the list. If the chat is already in the list, it will be removed from the list first
addRecentlyFoundChat :: Member TDLib r => AddRecentlyFoundChat -> Sem r (Error  Ok)
addRecentlyFoundChat :: AddRecentlyFoundChat -> Sem r (Error ∪ Ok)
addRecentlyFoundChat = AddRecentlyFoundChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a chat from the list of recently found chats
removeRecentlyFoundChat :: Member TDLib r => RemoveRecentlyFoundChat -> Sem r (Error  Ok)
removeRecentlyFoundChat :: RemoveRecentlyFoundChat -> Sem r (Error ∪ Ok)
removeRecentlyFoundChat = RemoveRecentlyFoundChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Clears the list of recently found chats
clearRecentlyFoundChats :: Member TDLib r => ClearRecentlyFoundChats -> Sem r (Error  Ok)
clearRecentlyFoundChats :: ClearRecentlyFoundChats -> Sem r (Error ∪ Ok)
clearRecentlyFoundChats = ClearRecentlyFoundChats -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks whether a username can be set for a chat
checkChatUsername :: Member TDLib r => CheckChatUsername -> Sem r (Error  CheckChatUsernameResult)
checkChatUsername :: CheckChatUsername -> Sem r (Error ∪ CheckChatUsernameResult)
checkChatUsername = CheckChatUsername -> Sem r (Error ∪ CheckChatUsernameResult)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of public chats of the specified type, owned by the user
getCreatedPublicChats :: Member TDLib r => GetCreatedPublicChats -> Sem r (Error  Chats)
getCreatedPublicChats :: GetCreatedPublicChats -> Sem r (Error ∪ Chats)
getCreatedPublicChats = GetCreatedPublicChats -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks whether the maximum number of owned public chats has been reached. Returns corresponding error if the limit was reached
checkCreatedPublicChatsLimit :: Member TDLib r => CheckCreatedPublicChatsLimit -> Sem r (Error  Ok)
checkCreatedPublicChatsLimit :: CheckCreatedPublicChatsLimit -> Sem r (Error ∪ Ok)
checkCreatedPublicChatsLimit = CheckCreatedPublicChatsLimit -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of basic group and supergroup chats, which can be used as a discussion group for a channel. Basic group chats need to be first upgraded to supergroups before they can be set as a discussion group
getSuitableDiscussionChats :: Member TDLib r => GetSuitableDiscussionChats -> Sem r (Error  Chats)
getSuitableDiscussionChats :: GetSuitableDiscussionChats -> Sem r (Error ∪ Chats)
getSuitableDiscussionChats = GetSuitableDiscussionChats -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of recently inactive supergroups and channels. Can be used when user reaches limit on the number of joined supergroups and channels and receives CHANNELS_TOO_MUCH error
getInactiveSupergroupChats :: Member TDLib r => GetInactiveSupergroupChats -> Sem r (Error  Chats)
getInactiveSupergroupChats :: GetInactiveSupergroupChats -> Sem r (Error ∪ Chats)
getInactiveSupergroupChats = GetInactiveSupergroupChats -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of common group chats with a given user. Chats are sorted by their type and creation date
getGroupsInCommon :: Member TDLib r => GetGroupsInCommon -> Sem r (Error  Chats)
getGroupsInCommon :: GetGroupsInCommon -> Sem r (Error ∪ Chats)
getGroupsInCommon = GetGroupsInCommon -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns messages in a chat. The messages are returned in a reverse chronological order (i.e., in order of decreasing message_id).
getChatHistory :: Member TDLib r => GetChatHistory -> Sem r (Error  Messages)
getChatHistory :: GetChatHistory -> Sem r (Error ∪ Messages)
getChatHistory = GetChatHistory -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes all messages in the chat. Use Chat.can_be_deleted_only_for_self and Chat.can_be_deleted_for_all_users fields to find whether and how the method can be applied to the chat
deleteChatHistory :: Member TDLib r => DeleteChatHistory -> Sem r (Error  Ok)
deleteChatHistory :: DeleteChatHistory -> Sem r (Error ∪ Ok)
deleteChatHistory = DeleteChatHistory -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for messages with given words in the chat. Returns the results in reverse chronological order, i.e. in order of decreasing message_id. Cannot be used in secret chats with a non-empty query
searchChatMessages :: Member TDLib r => SearchChatMessages -> Sem r (Error  Messages)
searchChatMessages :: SearchChatMessages -> Sem r (Error ∪ Messages)
searchChatMessages = SearchChatMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for messages in all chats except secret chats. Returns the results in reverse chronological order (i.e., in order of decreasing (date, chat_id, message_id)).
searchMessages :: Member TDLib r => SearchMessages -> Sem r (Error  Messages)
searchMessages :: SearchMessages -> Sem r (Error ∪ Messages)
searchMessages = SearchMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for messages in secret chats. Returns the results in reverse chronological order. For optimal performance the number of returned messages is chosen by the library
searchSecretMessages :: Member TDLib r => SearchSecretMessages -> Sem r (Error  FoundMessages)
searchSecretMessages :: SearchSecretMessages -> Sem r (Error ∪ FoundMessages)
searchSecretMessages = SearchSecretMessages -> Sem r (Error ∪ FoundMessages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for call messages. Returns the results in reverse chronological order (i. e., in order of decreasing message_id). For optimal performance the number of returned messages is chosen by the library
searchCallMessages :: Member TDLib r => SearchCallMessages -> Sem r (Error  Messages)
searchCallMessages :: SearchCallMessages -> Sem r (Error ∪ Messages)
searchCallMessages = SearchCallMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about the recent locations of chat members that were sent to the chat. Returns up to 1 location message per user
searchChatRecentLocationMessages :: Member TDLib r => SearchChatRecentLocationMessages -> Sem r (Error  Messages)
searchChatRecentLocationMessages :: SearchChatRecentLocationMessages -> Sem r (Error ∪ Messages)
searchChatRecentLocationMessages = SearchChatRecentLocationMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all active live locations that should be updated by the client. The list is persistent across application restarts only if the message database is used
getActiveLiveLocationMessages :: Member TDLib r => GetActiveLiveLocationMessages -> Sem r (Error  Messages)
getActiveLiveLocationMessages :: GetActiveLiveLocationMessages -> Sem r (Error ∪ Messages)
getActiveLiveLocationMessages = GetActiveLiveLocationMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the last message sent in a chat no later than the specified date
getChatMessageByDate :: Member TDLib r => GetChatMessageByDate -> Sem r (Error  Message)
getChatMessageByDate :: GetChatMessageByDate -> Sem r (Error ∪ Message)
getChatMessageByDate = GetChatMessageByDate -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns approximate number of messages of the specified type in the chat
getChatMessageCount :: Member TDLib r => GetChatMessageCount -> Sem r (Error  Count)
getChatMessageCount :: GetChatMessageCount -> Sem r (Error ∪ Count)
getChatMessageCount = GetChatMessageCount -> Sem r (Error ∪ Count)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all scheduled messages in a chat. The messages are returned in a reverse chronological order (i.e., in order of decreasing message_id)
getChatScheduledMessages :: Member TDLib r => GetChatScheduledMessages -> Sem r (Error  Messages)
getChatScheduledMessages :: GetChatScheduledMessages -> Sem r (Error ∪ Messages)
getChatScheduledMessages = GetChatScheduledMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes an active notification from notification list. Needs to be called only if the notification is removed by the current user
removeNotification :: Member TDLib r => RemoveNotification -> Sem r (Error  Ok)
removeNotification :: RemoveNotification -> Sem r (Error ∪ Ok)
removeNotification = RemoveNotification -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a group of active notifications. Needs to be called only if the notification group is removed by the current user
removeNotificationGroup :: Member TDLib r => RemoveNotificationGroup -> Sem r (Error  Ok)
removeNotificationGroup :: RemoveNotificationGroup -> Sem r (Error ∪ Ok)
removeNotificationGroup = RemoveNotificationGroup -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a public HTTPS link to a message. Available only for messages in supergroups and channels with a username
getPublicMessageLink :: Member TDLib r => GetPublicMessageLink -> Sem r (Error  PublicMessageLink)
getPublicMessageLink :: GetPublicMessageLink -> Sem r (Error ∪ PublicMessageLink)
getPublicMessageLink = GetPublicMessageLink -> Sem r (Error ∪ PublicMessageLink)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a private HTTPS link to a message in a chat. Available only for already sent messages in supergroups and channels. The link will work only for members of the chat
getMessageLink :: Member TDLib r => GetMessageLink -> Sem r (Error  HttpUrl)
getMessageLink :: GetMessageLink -> Sem r (Error ∪ HttpUrl)
getMessageLink = GetMessageLink -> Sem r (Error ∪ HttpUrl)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a public or private message link
getMessageLinkInfo :: Member TDLib r => GetMessageLinkInfo -> Sem r (Error  MessageLinkInfo)
getMessageLinkInfo :: GetMessageLinkInfo -> Sem r (Error ∪ MessageLinkInfo)
getMessageLinkInfo = GetMessageLinkInfo -> Sem r (Error ∪ MessageLinkInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a message. Returns the sent message
sendMessage :: Member TDLib r => SendMessage -> Sem r (Error  Message)
sendMessage :: SendMessage -> Sem r (Error ∪ Message)
sendMessage = SendMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends messages grouped together into an album. Currently only photo and video messages can be grouped into an album. Returns sent messages
sendMessageAlbum :: Member TDLib r => SendMessageAlbum -> Sem r (Error  Messages)
sendMessageAlbum :: SendMessageAlbum -> Sem r (Error ∪ Messages)
sendMessageAlbum = SendMessageAlbum -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Invites a bot to a chat (if it is not yet a member) and sends it the /start command. Bots can't be invited to a private chat other than the chat with the bot. Bots can't be invited to channels (although they can be added as admins) and secret chats. Returns the sent message
sendBotStartMessage :: Member TDLib r => SendBotStartMessage -> Sem r (Error  Message)
sendBotStartMessage :: SendBotStartMessage -> Sem r (Error ∪ Message)
sendBotStartMessage = SendBotStartMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends the result of an inline query as a message. Returns the sent message. Always clears a chat draft message
sendInlineQueryResultMessage :: Member TDLib r => SendInlineQueryResultMessage -> Sem r (Error  Message)
sendInlineQueryResultMessage :: SendInlineQueryResultMessage -> Sem r (Error ∪ Message)
sendInlineQueryResultMessage = SendInlineQueryResultMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Forwards previously sent messages. Returns the forwarded messages in the same order as the message identifiers passed in message_ids. If a message can't be forwarded, null will be returned instead of the message
forwardMessages :: Member TDLib r => ForwardMessages -> Sem r (Error  Messages)
forwardMessages :: ForwardMessages -> Sem r (Error ∪ Messages)
forwardMessages = ForwardMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Resends messages which failed to send. Can be called only for messages for which messageSendingStateFailed.can_retry is true and after specified in messageSendingStateFailed.retry_after time passed.
resendMessages :: Member TDLib r => ResendMessages -> Sem r (Error  Messages)
resendMessages :: ResendMessages -> Sem r (Error ∪ Messages)
resendMessages = ResendMessages -> Sem r (Error ∪ Messages)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the current TTL setting (sets a new self-destruct timer) in a secret chat and sends the corresponding message
sendChatSetTtlMessage :: Member TDLib r => SendChatSetTtlMessage -> Sem r (Error  Message)
sendChatSetTtlMessage :: SendChatSetTtlMessage -> Sem r (Error ∪ Message)
sendChatSetTtlMessage = SendChatSetTtlMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a notification about a screenshot taken in a chat. Supported only in private and secret chats
sendChatScreenshotTakenNotification :: Member TDLib r => SendChatScreenshotTakenNotification -> Sem r (Error  Ok)
sendChatScreenshotTakenNotification :: SendChatScreenshotTakenNotification -> Sem r (Error ∪ Ok)
sendChatScreenshotTakenNotification = SendChatScreenshotTakenNotification -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a local message to a chat. The message is persistent across application restarts only if the message database is used. Returns the added message
addLocalMessage :: Member TDLib r => AddLocalMessage -> Sem r (Error  Message)
addLocalMessage :: AddLocalMessage -> Sem r (Error ∪ Message)
addLocalMessage = AddLocalMessage -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes messages
deleteMessages :: Member TDLib r => DeleteMessages -> Sem r (Error  Ok)
deleteMessages :: DeleteMessages -> Sem r (Error ∪ Ok)
deleteMessages = DeleteMessages -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes all messages sent by the specified user to a chat. Supported only for supergroups; requires can_delete_messages administrator privileges
deleteChatMessagesFromUser :: Member TDLib r => DeleteChatMessagesFromUser -> Sem r (Error  Ok)
deleteChatMessagesFromUser :: DeleteChatMessagesFromUser -> Sem r (Error ∪ Ok)
deleteChatMessagesFromUser = DeleteChatMessagesFromUser -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the text of a message (or a text of a game message). Returns the edited message after the edit is completed on the server side
editMessageText :: Member TDLib r => EditMessageText -> Sem r (Error  Message)
editMessageText :: EditMessageText -> Sem r (Error ∪ Message)
editMessageText = EditMessageText -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the message content of a live location. Messages can be edited for a limited period of time specified in the live location. Returns the edited message after the edit is completed on the server side
editMessageLiveLocation :: Member TDLib r => EditMessageLiveLocation -> Sem r (Error  Message)
editMessageLiveLocation :: EditMessageLiveLocation -> Sem r (Error ∪ Message)
editMessageLiveLocation = EditMessageLiveLocation -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the content of a message with an animation, an audio, a document, a photo or a video. The media in the message can't be replaced if the message was set to self-destruct. Media can't be replaced by self-destructing media. Media in an album can be edited only to contain a photo or a video. Returns the edited message after the edit is completed on the server side
editMessageMedia :: Member TDLib r => EditMessageMedia -> Sem r (Error  Message)
editMessageMedia :: EditMessageMedia -> Sem r (Error ∪ Message)
editMessageMedia = EditMessageMedia -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the message content caption. Returns the edited message after the edit is completed on the server side
editMessageCaption :: Member TDLib r => EditMessageCaption -> Sem r (Error  Message)
editMessageCaption :: EditMessageCaption -> Sem r (Error ∪ Message)
editMessageCaption = EditMessageCaption -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the message reply markup; for bots only. Returns the edited message after the edit is completed on the server side
editMessageReplyMarkup :: Member TDLib r => EditMessageReplyMarkup -> Sem r (Error  Message)
editMessageReplyMarkup :: EditMessageReplyMarkup -> Sem r (Error ∪ Message)
editMessageReplyMarkup = EditMessageReplyMarkup -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the text of an inline text or game message sent via a bot; for bots only
editInlineMessageText :: Member TDLib r => EditInlineMessageText -> Sem r (Error  Ok)
editInlineMessageText :: EditInlineMessageText -> Sem r (Error ∪ Ok)
editInlineMessageText = EditInlineMessageText -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the content of a live location in an inline message sent via a bot; for bots only
editInlineMessageLiveLocation :: Member TDLib r => EditInlineMessageLiveLocation -> Sem r (Error  Ok)
editInlineMessageLiveLocation :: EditInlineMessageLiveLocation -> Sem r (Error ∪ Ok)
editInlineMessageLiveLocation = EditInlineMessageLiveLocation -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the content of a message with an animation, an audio, a document, a photo or a video in an inline message sent via a bot; for bots only
editInlineMessageMedia :: Member TDLib r => EditInlineMessageMedia -> Sem r (Error  Ok)
editInlineMessageMedia :: EditInlineMessageMedia -> Sem r (Error ∪ Ok)
editInlineMessageMedia = EditInlineMessageMedia -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the caption of an inline message sent via a bot; for bots only
editInlineMessageCaption :: Member TDLib r => EditInlineMessageCaption -> Sem r (Error  Ok)
editInlineMessageCaption :: EditInlineMessageCaption -> Sem r (Error ∪ Ok)
editInlineMessageCaption = EditInlineMessageCaption -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the reply markup of an inline message sent via a bot; for bots only
editInlineMessageReplyMarkup :: Member TDLib r => EditInlineMessageReplyMarkup -> Sem r (Error  Ok)
editInlineMessageReplyMarkup :: EditInlineMessageReplyMarkup -> Sem r (Error ∪ Ok)
editInlineMessageReplyMarkup = EditInlineMessageReplyMarkup -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits the time when a scheduled message will be sent. Scheduling state of all messages in the same album or forwarded together with the message will be also changed
editMessageSchedulingState :: Member TDLib r => EditMessageSchedulingState -> Sem r (Error  Ok)
editMessageSchedulingState :: EditMessageSchedulingState -> Sem r (Error ∪ Ok)
editMessageSchedulingState = EditMessageSchedulingState -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all entities (mentions, hashtags, cashtags, bot commands, bank card numbers, URLs, and email addresses) contained in the text. This is an offline method. Can be called before authorization. Can be called synchronously
getTextEntities :: Member TDLib r => GetTextEntities -> Sem r (Error  TextEntities)
getTextEntities :: GetTextEntities -> Sem r (Error ∪ TextEntities)
getTextEntities = GetTextEntities -> Sem r (Error ∪ TextEntities)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Parses Bold, Italic, Underline, Strikethrough, Code, Pre, PreCode, TextUrl and MentionName entities contained in the text. This is an offline method. Can be called before authorization. Can be called synchronously
parseTextEntities :: Member TDLib r => ParseTextEntities -> Sem r (Error  FormattedText)
parseTextEntities :: ParseTextEntities -> Sem r (Error ∪ FormattedText)
parseTextEntities = ParseTextEntities -> Sem r (Error ∪ FormattedText)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Parses Markdown entities in a human-friendly format, ignoring mark up errors. This is an offline method. Can be called before authorization. Can be called synchronously
parseMarkdown :: Member TDLib r => ParseMarkdown -> Sem r (Error  FormattedText)
parseMarkdown :: ParseMarkdown -> Sem r (Error ∪ FormattedText)
parseMarkdown = ParseMarkdown -> Sem r (Error ∪ FormattedText)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Replaces text entities with Markdown formatting in a human-friendly format. Entities that can't be represented in Markdown unambiguously are kept as is. This is an offline method. Can be called before authorization. Can be called synchronously
getMarkdownText :: Member TDLib r => GetMarkdownText -> Sem r (Error  FormattedText)
getMarkdownText :: GetMarkdownText -> Sem r (Error ∪ FormattedText)
getMarkdownText = GetMarkdownText -> Sem r (Error ∪ FormattedText)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the MIME type of a file, guessed by its extension. Returns an empty string on failure. This is an offline method. Can be called before authorization. Can be called synchronously
getFileMimeType :: Member TDLib r => GetFileMimeType -> Sem r (Error  Text)
getFileMimeType :: GetFileMimeType -> Sem r (Error ∪ Text)
getFileMimeType = GetFileMimeType -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the extension of a file, guessed by its MIME type. Returns an empty string on failure. This is an offline method. Can be called before authorization. Can be called synchronously
getFileExtension :: Member TDLib r => GetFileExtension -> Sem r (Error  Text)
getFileExtension :: GetFileExtension -> Sem r (Error ∪ Text)
getFileExtension = GetFileExtension -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes potentially dangerous characters from the name of a file. The encoding of the file name is supposed to be UTF-8. Returns an empty string on failure. This is an offline method. Can be called before authorization. Can be called synchronously
cleanFileName :: Member TDLib r => CleanFileName -> Sem r (Error  Text)
cleanFileName :: CleanFileName -> Sem r (Error ∪ Text)
cleanFileName = CleanFileName -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a string stored in the local database from the specified localization target and language pack by its key. Returns a 404 error if the string is not found. This is an offline method. Can be called before authorization. Can be called synchronously
getLanguagePackString :: Member TDLib r => GetLanguagePackString -> Sem r (Error  LanguagePackStringValue)
getLanguagePackString :: GetLanguagePackString -> Sem r (Error ∪ LanguagePackStringValue)
getLanguagePackString = GetLanguagePackString -> Sem r (Error ∪ LanguagePackStringValue)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Converts a JSON-serialized string to corresponding JsonValue object. This is an offline method. Can be called before authorization. Can be called synchronously
getJsonValue :: Member TDLib r => GetJsonValue -> Sem r (Error  JsonValue)
getJsonValue :: GetJsonValue -> Sem r (Error ∪ JsonValue)
getJsonValue = GetJsonValue -> Sem r (Error ∪ JsonValue)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Converts a JsonValue object to corresponding JSON-serialized string. This is an offline method. Can be called before authorization. Can be called synchronously
getJsonString :: Member TDLib r => GetJsonString -> Sem r (Error  Text)
getJsonString :: GetJsonString -> Sem r (Error ∪ Text)
getJsonString = GetJsonString -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the user answer to a poll. A poll in quiz mode can be answered only once
setPollAnswer :: Member TDLib r => SetPollAnswer -> Sem r (Error  Ok)
setPollAnswer :: SetPollAnswer -> Sem r (Error ∪ Ok)
setPollAnswer = SetPollAnswer -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns users voted for the specified option in a non-anonymous polls. For the optimal performance the number of returned users is chosen by the library
getPollVoters :: Member TDLib r => GetPollVoters -> Sem r (Error  Users)
getPollVoters :: GetPollVoters -> Sem r (Error ∪ Users)
getPollVoters = GetPollVoters -> Sem r (Error ∪ Users)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Stops a poll. A poll in a message can be stopped when the message has can_be_edited flag set
stopPoll :: Member TDLib r => StopPoll -> Sem r (Error  Ok)
stopPoll :: StopPoll -> Sem r (Error ∪ Ok)
stopPoll = StopPoll -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a button of type inlineKeyboardButtonTypeLoginUrl. The method needs to be called when the user presses the button
getLoginUrlInfo :: Member TDLib r => GetLoginUrlInfo -> Sem r (Error  LoginUrlInfo)
getLoginUrlInfo :: GetLoginUrlInfo -> Sem r (Error ∪ LoginUrlInfo)
getLoginUrlInfo = GetLoginUrlInfo -> Sem r (Error ∪ LoginUrlInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an HTTP URL which can be used to automatically authorize the user on a website after clicking an inline button of type inlineKeyboardButtonTypeLoginUrl.
getLoginUrl :: Member TDLib r => GetLoginUrl -> Sem r (Error  HttpUrl)
getLoginUrl :: GetLoginUrl -> Sem r (Error ∪ HttpUrl)
getLoginUrl = GetLoginUrl -> Sem r (Error ∪ HttpUrl)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends an inline query to a bot and returns its results. Returns an error with code 502 if the bot fails to answer the query before the query timeout expires
getInlineQueryResults :: Member TDLib r => GetInlineQueryResults -> Sem r (Error  InlineQueryResults)
getInlineQueryResults :: GetInlineQueryResults -> Sem r (Error ∪ InlineQueryResults)
getInlineQueryResults = GetInlineQueryResults -> Sem r (Error ∪ InlineQueryResults)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the result of an inline query; for bots only
answerInlineQuery :: Member TDLib r => AnswerInlineQuery -> Sem r (Error  Ok)
answerInlineQuery :: AnswerInlineQuery -> Sem r (Error ∪ Ok)
answerInlineQuery = AnswerInlineQuery -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a callback query to a bot and returns an answer. Returns an error with code 502 if the bot fails to answer the query before the query timeout expires
getCallbackQueryAnswer :: Member TDLib r => GetCallbackQueryAnswer -> Sem r (Error  CallbackQueryAnswer)
getCallbackQueryAnswer :: GetCallbackQueryAnswer -> Sem r (Error ∪ CallbackQueryAnswer)
getCallbackQueryAnswer = GetCallbackQueryAnswer -> Sem r (Error ∪ CallbackQueryAnswer)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the result of a callback query; for bots only
answerCallbackQuery :: Member TDLib r => AnswerCallbackQuery -> Sem r (Error  Ok)
answerCallbackQuery :: AnswerCallbackQuery -> Sem r (Error ∪ Ok)
answerCallbackQuery = AnswerCallbackQuery -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the result of a shipping query; for bots only
answerShippingQuery :: Member TDLib r => AnswerShippingQuery -> Sem r (Error  Ok)
answerShippingQuery :: AnswerShippingQuery -> Sem r (Error ∪ Ok)
answerShippingQuery = AnswerShippingQuery -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the result of a pre-checkout query; for bots only
answerPreCheckoutQuery :: Member TDLib r => AnswerPreCheckoutQuery -> Sem r (Error  Ok)
answerPreCheckoutQuery :: AnswerPreCheckoutQuery -> Sem r (Error ∪ Ok)
answerPreCheckoutQuery = AnswerPreCheckoutQuery -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Updates the game score of the specified user in the game; for bots only
setGameScore :: Member TDLib r => SetGameScore -> Sem r (Error  Message)
setGameScore :: SetGameScore -> Sem r (Error ∪ Message)
setGameScore = SetGameScore -> Sem r (Error ∪ Message)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Updates the game score of the specified user in a game; for bots only
setInlineGameScore :: Member TDLib r => SetInlineGameScore -> Sem r (Error  Ok)
setInlineGameScore :: SetInlineGameScore -> Sem r (Error ∪ Ok)
setInlineGameScore = SetInlineGameScore -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the high scores for a game and some part of the high score table in the range of the specified user; for bots only
getGameHighScores :: Member TDLib r => GetGameHighScores -> Sem r (Error  GameHighScores)
getGameHighScores :: GetGameHighScores -> Sem r (Error ∪ GameHighScores)
getGameHighScores = GetGameHighScores -> Sem r (Error ∪ GameHighScores)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns game high scores and some part of the high score table in the range of the specified user; for bots only
getInlineGameHighScores :: Member TDLib r => GetInlineGameHighScores -> Sem r (Error  GameHighScores)
getInlineGameHighScores :: GetInlineGameHighScores -> Sem r (Error ∪ GameHighScores)
getInlineGameHighScores = GetInlineGameHighScores -> Sem r (Error ∪ GameHighScores)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes the default reply markup from a chat. Must be called after a one-time keyboard or a ForceReply reply markup has been used. UpdateChatReplyMarkup will be sent if the reply markup will be changed
deleteChatReplyMarkup :: Member TDLib r => DeleteChatReplyMarkup -> Sem r (Error  Ok)
deleteChatReplyMarkup :: DeleteChatReplyMarkup -> Sem r (Error ∪ Ok)
deleteChatReplyMarkup = DeleteChatReplyMarkup -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a notification about user activity in a chat
sendChatAction :: Member TDLib r => SendChatAction -> Sem r (Error  Ok)
sendChatAction :: SendChatAction -> Sem r (Error ∪ Ok)
sendChatAction = SendChatAction -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs TDLib that the chat is opened by the user. Many useful activities depend on the chat being opened or closed (e.g., in supergroups and channels all updates are received only for opened chats)
openChat :: Member TDLib r => OpenChat -> Sem r (Error  Ok)
openChat :: OpenChat -> Sem r (Error ∪ Ok)
openChat = OpenChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs TDLib that the chat is closed by the user. Many useful activities depend on the chat being opened or closed
closeChat :: Member TDLib r => CloseChat -> Sem r (Error  Ok)
closeChat :: CloseChat -> Sem r (Error ∪ Ok)
closeChat = CloseChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs TDLib that messages are being viewed by the user. Many useful activities depend on whether the messages are currently being viewed or not (e.g., marking messages as read, incrementing a view counter, updating a view counter, removing deleted messages in supergroups and channels)
viewMessages :: Member TDLib r => ViewMessages -> Sem r (Error  Ok)
viewMessages :: ViewMessages -> Sem r (Error ∪ Ok)
viewMessages = ViewMessages -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs TDLib that the message content has been opened (e.g., the user has opened a photo, video, document, location or venue, or has listened to an audio file or voice note message). An updateMessageContentOpened update will be generated if something has changed
openMessageContent :: Member TDLib r => OpenMessageContent -> Sem r (Error  Ok)
openMessageContent :: OpenMessageContent -> Sem r (Error ∪ Ok)
openMessageContent = OpenMessageContent -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Marks all mentions in a chat as read
readAllChatMentions :: Member TDLib r => ReadAllChatMentions -> Sem r (Error  Ok)
readAllChatMentions :: ReadAllChatMentions -> Sem r (Error ∪ Ok)
readAllChatMentions = ReadAllChatMentions -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an existing chat corresponding to a given user
createPrivateChat :: Member TDLib r => CreatePrivateChat -> Sem r (Error  Chat)
createPrivateChat :: CreatePrivateChat -> Sem r (Error ∪ Chat)
createPrivateChat = CreatePrivateChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an existing chat corresponding to a known basic group
createBasicGroupChat :: Member TDLib r => CreateBasicGroupChat -> Sem r (Error  Chat)
createBasicGroupChat :: CreateBasicGroupChat -> Sem r (Error ∪ Chat)
createBasicGroupChat = CreateBasicGroupChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an existing chat corresponding to a known supergroup or channel
createSupergroupChat :: Member TDLib r => CreateSupergroupChat -> Sem r (Error  Chat)
createSupergroupChat :: CreateSupergroupChat -> Sem r (Error ∪ Chat)
createSupergroupChat = CreateSupergroupChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an existing chat corresponding to a known secret chat
createSecretChat :: Member TDLib r => CreateSecretChat -> Sem r (Error  Chat)
createSecretChat :: CreateSecretChat -> Sem r (Error ∪ Chat)
createSecretChat = CreateSecretChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Creates a new basic group and sends a corresponding messageBasicGroupChatCreate. Returns the newly created chat
createNewBasicGroupChat :: Member TDLib r => CreateNewBasicGroupChat -> Sem r (Error  Chat)
createNewBasicGroupChat :: CreateNewBasicGroupChat -> Sem r (Error ∪ Chat)
createNewBasicGroupChat = CreateNewBasicGroupChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Creates a new supergroup or channel and sends a corresponding messageSupergroupChatCreate. Returns the newly created chat
createNewSupergroupChat :: Member TDLib r => CreateNewSupergroupChat -> Sem r (Error  Chat)
createNewSupergroupChat :: CreateNewSupergroupChat -> Sem r (Error ∪ Chat)
createNewSupergroupChat = CreateNewSupergroupChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Creates a new secret chat. Returns the newly created chat
createNewSecretChat :: Member TDLib r => CreateNewSecretChat -> Sem r (Error  Chat)
createNewSecretChat :: CreateNewSecretChat -> Sem r (Error ∪ Chat)
createNewSecretChat = CreateNewSecretChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Creates a new supergroup from an existing basic group and sends a corresponding messageChatUpgradeTo and messageChatUpgradeFrom; requires creator privileges. Deactivates the original basic group
upgradeBasicGroupChatToSupergroupChat :: Member TDLib r => UpgradeBasicGroupChatToSupergroupChat -> Sem r (Error  Chat)
upgradeBasicGroupChatToSupergroupChat :: UpgradeBasicGroupChatToSupergroupChat -> Sem r (Error ∪ Chat)
upgradeBasicGroupChatToSupergroupChat = UpgradeBasicGroupChatToSupergroupChat -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Moves a chat to a different chat list. Current chat list of the chat must ne non-null
setChatChatList :: Member TDLib r => SetChatChatList -> Sem r (Error  Ok)
setChatChatList :: SetChatChatList -> Sem r (Error ∪ Ok)
setChatChatList = SetChatChatList -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the chat title. Supported only for basic groups, supergroups and channels. Requires can_change_info rights. The title will not be changed until the request to the server has been completed
setChatTitle :: Member TDLib r => SetChatTitle -> Sem r (Error  Ok)
setChatTitle :: SetChatTitle -> Sem r (Error ∪ Ok)
setChatTitle = SetChatTitle -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the photo of a chat. Supported only for basic groups, supergroups and channels. Requires can_change_info rights. The photo will not be changed before request to the server has been completed
setChatPhoto :: Member TDLib r => SetChatPhoto -> Sem r (Error  Ok)
setChatPhoto :: SetChatPhoto -> Sem r (Error ∪ Ok)
setChatPhoto = SetChatPhoto -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the chat members permissions. Supported only for basic groups and supergroups. Requires can_restrict_members administrator right
setChatPermissions :: Member TDLib r => SetChatPermissions -> Sem r (Error  Ok)
setChatPermissions :: SetChatPermissions -> Sem r (Error ∪ Ok)
setChatPermissions = SetChatPermissions -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the draft message in a chat
setChatDraftMessage :: Member TDLib r => SetChatDraftMessage -> Sem r (Error  Ok)
setChatDraftMessage :: SetChatDraftMessage -> Sem r (Error ∪ Ok)
setChatDraftMessage = SetChatDraftMessage -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the notification settings of a chat. Notification settings of a chat with the current user (Saved Messages) can't be changed
setChatNotificationSettings :: Member TDLib r => SetChatNotificationSettings -> Sem r (Error  Ok)
setChatNotificationSettings :: SetChatNotificationSettings -> Sem r (Error ∪ Ok)
setChatNotificationSettings = SetChatNotificationSettings -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the pinned state of a chat. You can pin up to GetOption("pinned_chat_count_max")/GetOption("pinned_archived_chat_count_max") non-secret chats and the same number of secret chats in the main/archive chat list
toggleChatIsPinned :: Member TDLib r => ToggleChatIsPinned -> Sem r (Error  Ok)
toggleChatIsPinned :: ToggleChatIsPinned -> Sem r (Error ∪ Ok)
toggleChatIsPinned = ToggleChatIsPinned -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the marked as unread state of a chat
toggleChatIsMarkedAsUnread :: Member TDLib r => ToggleChatIsMarkedAsUnread -> Sem r (Error  Ok)
toggleChatIsMarkedAsUnread :: ToggleChatIsMarkedAsUnread -> Sem r (Error ∪ Ok)
toggleChatIsMarkedAsUnread = ToggleChatIsMarkedAsUnread -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the value of the default disable_notification parameter, used when a message is sent to a chat
toggleChatDefaultDisableNotification :: Member TDLib r => ToggleChatDefaultDisableNotification -> Sem r (Error  Ok)
toggleChatDefaultDisableNotification :: ToggleChatDefaultDisableNotification -> Sem r (Error ∪ Ok)
toggleChatDefaultDisableNotification = ToggleChatDefaultDisableNotification -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes client data associated with a chat
setChatClientData :: Member TDLib r => SetChatClientData -> Sem r (Error  Ok)
setChatClientData :: SetChatClientData -> Sem r (Error ∪ Ok)
setChatClientData = SetChatClientData -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes information about a chat. Available for basic groups, supergroups, and channels. Requires can_change_info rights
setChatDescription :: Member TDLib r => SetChatDescription -> Sem r (Error  Ok)
setChatDescription :: SetChatDescription -> Sem r (Error ∪ Ok)
setChatDescription = SetChatDescription -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the discussion group of a channel chat; requires can_change_info rights in the channel if it is specified
setChatDiscussionGroup :: Member TDLib r => SetChatDiscussionGroup -> Sem r (Error  Ok)
setChatDiscussionGroup :: SetChatDiscussionGroup -> Sem r (Error ∪ Ok)
setChatDiscussionGroup = SetChatDiscussionGroup -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the location of a chat. Available only for some location-based supergroups, use supergroupFullInfo.can_set_location to check whether the method is allowed to use
setChatLocation :: Member TDLib r => SetChatLocation -> Sem r (Error  Ok)
setChatLocation :: SetChatLocation -> Sem r (Error ∪ Ok)
setChatLocation = SetChatLocation -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the slow mode delay of a chat. Available only for supergroups; requires can_restrict_members rights
setChatSlowModeDelay :: Member TDLib r => SetChatSlowModeDelay -> Sem r (Error  Ok)
setChatSlowModeDelay :: SetChatSlowModeDelay -> Sem r (Error ∪ Ok)
setChatSlowModeDelay = SetChatSlowModeDelay -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Pins a message in a chat; requires can_pin_messages rights
pinChatMessage :: Member TDLib r => PinChatMessage -> Sem r (Error  Ok)
pinChatMessage :: PinChatMessage -> Sem r (Error ∪ Ok)
pinChatMessage = PinChatMessage -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes the pinned message from a chat; requires can_pin_messages rights in the group or channel
unpinChatMessage :: Member TDLib r => UnpinChatMessage -> Sem r (Error  Ok)
unpinChatMessage :: UnpinChatMessage -> Sem r (Error ∪ Ok)
unpinChatMessage = UnpinChatMessage -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds current user as a new member to a chat. Private and secret chats can't be joined using this method
joinChat :: Member TDLib r => JoinChat -> Sem r (Error  Ok)
joinChat :: JoinChat -> Sem r (Error ∪ Ok)
joinChat = JoinChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes current user from chat members. Private and secret chats can't be left using this method
leaveChat :: Member TDLib r => LeaveChat -> Sem r (Error  Ok)
leaveChat :: LeaveChat -> Sem r (Error ∪ Ok)
leaveChat = LeaveChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a new member to a chat. Members can't be added to private or secret chats. Members will not be added until the chat state has been synchronized with the server
addChatMember :: Member TDLib r => AddChatMember -> Sem r (Error  Ok)
addChatMember :: AddChatMember -> Sem r (Error ∪ Ok)
addChatMember = AddChatMember -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds multiple new members to a chat. Currently this option is only available for supergroups and channels. This option can't be used to join a chat. Members can't be added to a channel if it has more than 200 members. Members will not be added until the chat state has been synchronized with the server
addChatMembers :: Member TDLib r => AddChatMembers -> Sem r (Error  Ok)
addChatMembers :: AddChatMembers -> Sem r (Error ∪ Ok)
addChatMembers = AddChatMembers -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the status of a chat member, needs appropriate privileges. This function is currently not suitable for adding new members to the chat and transferring chat ownership; instead, use addChatMember or transferChatOwnership. The chat member status will not be changed until it has been synchronized with the server
setChatMemberStatus :: Member TDLib r => SetChatMemberStatus -> Sem r (Error  Ok)
setChatMemberStatus :: SetChatMemberStatus -> Sem r (Error ∪ Ok)
setChatMemberStatus = SetChatMemberStatus -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks whether the current session can be used to transfer a chat ownership to another user
canTransferOwnership :: Member TDLib r => CanTransferOwnership -> Sem r (Error  CanTransferOwnershipResult)
canTransferOwnership :: CanTransferOwnership -> Sem r (Error ∪ CanTransferOwnershipResult)
canTransferOwnership = CanTransferOwnership -> Sem r (Error ∪ CanTransferOwnershipResult)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the owner of a chat. The current user must be a current owner of the chat. Use the method canTransferOwnership to check whether the ownership can be transferred from the current session. Available only for supergroups and channel chats
transferChatOwnership :: Member TDLib r => TransferChatOwnership -> Sem r (Error  Ok)
transferChatOwnership :: TransferChatOwnership -> Sem r (Error ∪ Ok)
transferChatOwnership = TransferChatOwnership -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a single member of a chat
getChatMember :: Member TDLib r => GetChatMember -> Sem r (Error  ChatMember)
getChatMember :: GetChatMember -> Sem r (Error ∪ ChatMember)
getChatMember = GetChatMember -> Sem r (Error ∪ ChatMember)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for a specified query in the first name, last name and username of the members of a specified chat. Requires administrator rights in channels
searchChatMembers :: Member TDLib r => SearchChatMembers -> Sem r (Error  ChatMembers)
searchChatMembers :: SearchChatMembers -> Sem r (Error ∪ ChatMembers)
searchChatMembers = SearchChatMembers -> Sem r (Error ∪ ChatMembers)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of administrators of the chat with their custom titles
getChatAdministrators :: Member TDLib r => GetChatAdministrators -> Sem r (Error  ChatAdministrators)
getChatAdministrators :: GetChatAdministrators -> Sem r (Error ∪ ChatAdministrators)
getChatAdministrators = GetChatAdministrators -> Sem r (Error ∪ ChatAdministrators)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Clears draft messages in all chats
clearAllDraftMessages :: Member TDLib r => ClearAllDraftMessages -> Sem r (Error  Ok)
clearAllDraftMessages :: ClearAllDraftMessages -> Sem r (Error ∪ Ok)
clearAllDraftMessages = ClearAllDraftMessages -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns list of chats with non-default notification settings
getChatNotificationSettingsExceptions :: Member TDLib r => GetChatNotificationSettingsExceptions -> Sem r (Error  Chats)
getChatNotificationSettingsExceptions :: GetChatNotificationSettingsExceptions -> Sem r (Error ∪ Chats)
getChatNotificationSettingsExceptions = GetChatNotificationSettingsExceptions -> Sem r (Error ∪ Chats)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the notification settings for chats of a given type
getScopeNotificationSettings :: Member TDLib r => GetScopeNotificationSettings -> Sem r (Error  ScopeNotificationSettings)
getScopeNotificationSettings :: GetScopeNotificationSettings
-> Sem r (Error ∪ ScopeNotificationSettings)
getScopeNotificationSettings = GetScopeNotificationSettings
-> Sem r (Error ∪ ScopeNotificationSettings)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes notification settings for chats of a given type
setScopeNotificationSettings :: Member TDLib r => SetScopeNotificationSettings -> Sem r (Error  Ok)
setScopeNotificationSettings :: SetScopeNotificationSettings -> Sem r (Error ∪ Ok)
setScopeNotificationSettings = SetScopeNotificationSettings -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Resets all notification settings to their default values. By default, all chats are unmuted, the sound is set to "default" and message previews are shown
resetAllNotificationSettings :: Member TDLib r => ResetAllNotificationSettings -> Sem r (Error  Ok)
resetAllNotificationSettings :: ResetAllNotificationSettings -> Sem r (Error ∪ Ok)
resetAllNotificationSettings = ResetAllNotificationSettings -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the order of pinned chats
setPinnedChats :: Member TDLib r => SetPinnedChats -> Sem r (Error  Ok)
setPinnedChats :: SetPinnedChats -> Sem r (Error ∪ Ok)
setPinnedChats = SetPinnedChats -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Downloads a file from the cloud. Download progress and completion of the download will be notified through updateFile updates
downloadFile :: Member TDLib r => DownloadFile -> Sem r (Error  File)
downloadFile :: DownloadFile -> Sem r (Error ∪ File)
downloadFile = DownloadFile -> Sem r (Error ∪ File)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns file downloaded prefix size from a given offset
getFileDownloadedPrefixSize :: Member TDLib r => GetFileDownloadedPrefixSize -> Sem r (Error  Count)
getFileDownloadedPrefixSize :: GetFileDownloadedPrefixSize -> Sem r (Error ∪ Count)
getFileDownloadedPrefixSize = GetFileDownloadedPrefixSize -> Sem r (Error ∪ Count)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Stops the downloading of a file. If a file has already been downloaded, does nothing
cancelDownloadFile :: Member TDLib r => CancelDownloadFile -> Sem r (Error  Ok)
cancelDownloadFile :: CancelDownloadFile -> Sem r (Error ∪ Ok)
cancelDownloadFile = CancelDownloadFile -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Asynchronously uploads a file to the cloud without sending it in a message. updateFile will be used to notify about upload progress and successful completion of the upload. The file will not have a persistent remote identifier until it will be sent in a message
uploadFile :: Member TDLib r => UploadFile -> Sem r (Error  File)
uploadFile :: UploadFile -> Sem r (Error ∪ File)
uploadFile = UploadFile -> Sem r (Error ∪ File)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Stops the uploading of a file. Supported only for files uploaded by using uploadFile. For other files the behavior is undefined
cancelUploadFile :: Member TDLib r => CancelUploadFile -> Sem r (Error  Ok)
cancelUploadFile :: CancelUploadFile -> Sem r (Error ∪ Ok)
cancelUploadFile = CancelUploadFile -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Writes a part of a generated file. This method is intended to be used only if the client has no direct access to TDLib's file system, because it is usually slower than a direct write to the destination file
writeGeneratedFilePart :: Member TDLib r => WriteGeneratedFilePart -> Sem r (Error  Ok)
writeGeneratedFilePart :: WriteGeneratedFilePart -> Sem r (Error ∪ Ok)
writeGeneratedFilePart = WriteGeneratedFilePart -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs TDLib on a file generation progress
setFileGenerationProgress :: Member TDLib r => SetFileGenerationProgress -> Sem r (Error  Ok)
setFileGenerationProgress :: SetFileGenerationProgress -> Sem r (Error ∪ Ok)
setFileGenerationProgress = SetFileGenerationProgress -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Finishes the file generation
finishFileGeneration :: Member TDLib r => FinishFileGeneration -> Sem r (Error  Ok)
finishFileGeneration :: FinishFileGeneration -> Sem r (Error ∪ Ok)
finishFileGeneration = FinishFileGeneration -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Reads a part of a file from the TDLib file cache and returns read bytes. This method is intended to be used only if the client has no direct access to TDLib's file system, because it is usually slower than a direct read from the file
readFilePart :: Member TDLib r => ReadFilePart -> Sem r (Error  FilePart)
readFilePart :: ReadFilePart -> Sem r (Error ∪ FilePart)
readFilePart = ReadFilePart -> Sem r (Error ∪ FilePart)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes a file from the TDLib file cache
deleteFile :: Member TDLib r => DeleteFile -> Sem r (Error  Ok)
deleteFile :: DeleteFile -> Sem r (Error ∪ Ok)
deleteFile = DeleteFile -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Generates a new invite link for a chat; the previously generated link is revoked. Available for basic groups, supergroups, and channels. Requires administrator privileges and can_invite_users right
generateChatInviteLink :: Member TDLib r => GenerateChatInviteLink -> Sem r (Error  ChatInviteLink)
generateChatInviteLink :: GenerateChatInviteLink -> Sem r (Error ∪ ChatInviteLink)
generateChatInviteLink = GenerateChatInviteLink -> Sem r (Error ∪ ChatInviteLink)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the validity of an invite link for a chat and returns information about the corresponding chat
checkChatInviteLink :: Member TDLib r => CheckChatInviteLink -> Sem r (Error  ChatInviteLinkInfo)
checkChatInviteLink :: CheckChatInviteLink -> Sem r (Error ∪ ChatInviteLinkInfo)
checkChatInviteLink = CheckChatInviteLink -> Sem r (Error ∪ ChatInviteLinkInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Uses an invite link to add the current user to the chat if possible. The new member will not be added until the chat state has been synchronized with the server
joinChatByInviteLink :: Member TDLib r => JoinChatByInviteLink -> Sem r (Error  Chat)
joinChatByInviteLink :: JoinChatByInviteLink -> Sem r (Error ∪ Chat)
joinChatByInviteLink = JoinChatByInviteLink -> Sem r (Error ∪ Chat)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Creates a new call
createCall :: Member TDLib r => CreateCall -> Sem r (Error  CallId)
createCall :: CreateCall -> Sem r (Error ∪ CallId)
createCall = CreateCall -> Sem r (Error ∪ CallId)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Accepts an incoming call
acceptCall :: Member TDLib r => AcceptCall -> Sem r (Error  Ok)
acceptCall :: AcceptCall -> Sem r (Error ∪ Ok)
acceptCall = AcceptCall -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Discards a call
discardCall :: Member TDLib r => DiscardCall -> Sem r (Error  Ok)
discardCall :: DiscardCall -> Sem r (Error ∪ Ok)
discardCall = DiscardCall -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a call rating
sendCallRating :: Member TDLib r => SendCallRating -> Sem r (Error  Ok)
sendCallRating :: SendCallRating -> Sem r (Error ∪ Ok)
sendCallRating = SendCallRating -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends debug information for a call
sendCallDebugInformation :: Member TDLib r => SendCallDebugInformation -> Sem r (Error  Ok)
sendCallDebugInformation :: SendCallDebugInformation -> Sem r (Error ∪ Ok)
sendCallDebugInformation = SendCallDebugInformation -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a user to the blacklist
blockUser :: Member TDLib r => BlockUser -> Sem r (Error  Ok)
blockUser :: BlockUser -> Sem r (Error ∪ Ok)
blockUser = BlockUser -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a user from the blacklist
unblockUser :: Member TDLib r => UnblockUser -> Sem r (Error  Ok)
unblockUser :: UnblockUser -> Sem r (Error ∪ Ok)
unblockUser = UnblockUser -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns users that were blocked by the current user
getBlockedUsers :: Member TDLib r => GetBlockedUsers -> Sem r (Error  Users)
getBlockedUsers :: GetBlockedUsers -> Sem r (Error ∪ Users)
getBlockedUsers = GetBlockedUsers -> Sem r (Error ∪ Users)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a user to the contact list or edits an existing contact by their user identifier
addContact :: Member TDLib r => AddContact -> Sem r (Error  Ok)
addContact :: AddContact -> Sem r (Error ∪ Ok)
addContact = AddContact -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds new contacts or edits existing contacts by their phone numbers; contacts' user identifiers are ignored
importContacts :: Member TDLib r => ImportContacts -> Sem r (Error  ImportedContacts)
importContacts :: ImportContacts -> Sem r (Error ∪ ImportedContacts)
importContacts = ImportContacts -> Sem r (Error ∪ ImportedContacts)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all user contacts
getContacts :: Member TDLib r => GetContacts -> Sem r (Error  Users)
getContacts :: GetContacts -> Sem r (Error ∪ Users)
getContacts = GetContacts -> Sem r (Error ∪ Users)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for the specified query in the first names, last names and usernames of the known user contacts
searchContacts :: Member TDLib r => SearchContacts -> Sem r (Error  Users)
searchContacts :: SearchContacts -> Sem r (Error ∪ Users)
searchContacts = SearchContacts -> Sem r (Error ∪ Users)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes users from the contact list
removeContacts :: Member TDLib r => RemoveContacts -> Sem r (Error  Ok)
removeContacts :: RemoveContacts -> Sem r (Error ∪ Ok)
removeContacts = RemoveContacts -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the total number of imported contacts
getImportedContactCount :: Member TDLib r => GetImportedContactCount -> Sem r (Error  Count)
getImportedContactCount :: GetImportedContactCount -> Sem r (Error ∪ Count)
getImportedContactCount = GetImportedContactCount -> Sem r (Error ∪ Count)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes imported contacts using the list of current user contacts saved on the device. Imports newly added contacts and, if at least the file database is enabled, deletes recently deleted contacts.
changeImportedContacts :: Member TDLib r => ChangeImportedContacts -> Sem r (Error  ImportedContacts)
changeImportedContacts :: ChangeImportedContacts -> Sem r (Error ∪ ImportedContacts)
changeImportedContacts = ChangeImportedContacts -> Sem r (Error ∪ ImportedContacts)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Clears all imported contacts, contact list remains unchanged
clearImportedContacts :: Member TDLib r => ClearImportedContacts -> Sem r (Error  Ok)
clearImportedContacts :: ClearImportedContacts -> Sem r (Error ∪ Ok)
clearImportedContacts = ClearImportedContacts -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Shares the phone number of the current user with a mutual contact. Supposed to be called when the user clicks on chatActionBarSharePhoneNumber
sharePhoneNumber :: Member TDLib r => SharePhoneNumber -> Sem r (Error  Ok)
sharePhoneNumber :: SharePhoneNumber -> Sem r (Error ∪ Ok)
sharePhoneNumber = SharePhoneNumber -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the profile photos of a user. The result of this query may be outdated: some photos might have been deleted already
getUserProfilePhotos :: Member TDLib r => GetUserProfilePhotos -> Sem r (Error  UserProfilePhotos)
getUserProfilePhotos :: GetUserProfilePhotos -> Sem r (Error ∪ UserProfilePhotos)
getUserProfilePhotos = GetUserProfilePhotos -> Sem r (Error ∪ UserProfilePhotos)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns stickers from the installed sticker sets that correspond to a given emoji. If the emoji is not empty, favorite and recently used stickers may also be returned
getStickers :: Member TDLib r => GetStickers -> Sem r (Error  Stickers)
getStickers :: GetStickers -> Sem r (Error ∪ Stickers)
getStickers = GetStickers -> Sem r (Error ∪ Stickers)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for stickers from public sticker sets that correspond to a given emoji
searchStickers :: Member TDLib r => SearchStickers -> Sem r (Error  Stickers)
searchStickers :: SearchStickers -> Sem r (Error ∪ Stickers)
searchStickers = SearchStickers -> Sem r (Error ∪ Stickers)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of installed sticker sets
getInstalledStickerSets :: Member TDLib r => GetInstalledStickerSets -> Sem r (Error  StickerSets)
getInstalledStickerSets :: GetInstalledStickerSets -> Sem r (Error ∪ StickerSets)
getInstalledStickerSets = GetInstalledStickerSets -> Sem r (Error ∪ StickerSets)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of archived sticker sets
getArchivedStickerSets :: Member TDLib r => GetArchivedStickerSets -> Sem r (Error  StickerSets)
getArchivedStickerSets :: GetArchivedStickerSets -> Sem r (Error ∪ StickerSets)
getArchivedStickerSets = GetArchivedStickerSets -> Sem r (Error ∪ StickerSets)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of trending sticker sets. For the optimal performance the number of returned sticker sets is chosen by the library
getTrendingStickerSets :: Member TDLib r => GetTrendingStickerSets -> Sem r (Error  StickerSets)
getTrendingStickerSets :: GetTrendingStickerSets -> Sem r (Error ∪ StickerSets)
getTrendingStickerSets = GetTrendingStickerSets -> Sem r (Error ∪ StickerSets)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of sticker sets attached to a file. Currently only photos and videos can have attached sticker sets
getAttachedStickerSets :: Member TDLib r => GetAttachedStickerSets -> Sem r (Error  StickerSets)
getAttachedStickerSets :: GetAttachedStickerSets -> Sem r (Error ∪ StickerSets)
getAttachedStickerSets = GetAttachedStickerSets -> Sem r (Error ∪ StickerSets)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a sticker set by its identifier
getStickerSet :: Member TDLib r => GetStickerSet -> Sem r (Error  StickerSet)
getStickerSet :: GetStickerSet -> Sem r (Error ∪ StickerSet)
getStickerSet = GetStickerSet -> Sem r (Error ∪ StickerSet)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for a sticker set by its name
searchStickerSet :: Member TDLib r => SearchStickerSet -> Sem r (Error  StickerSet)
searchStickerSet :: SearchStickerSet -> Sem r (Error ∪ StickerSet)
searchStickerSet = SearchStickerSet -> Sem r (Error ∪ StickerSet)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for installed sticker sets by looking for specified query in their title and name
searchInstalledStickerSets :: Member TDLib r => SearchInstalledStickerSets -> Sem r (Error  StickerSets)
searchInstalledStickerSets :: SearchInstalledStickerSets -> Sem r (Error ∪ StickerSets)
searchInstalledStickerSets = SearchInstalledStickerSets -> Sem r (Error ∪ StickerSets)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for ordinary sticker sets by looking for specified query in their title and name. Excludes installed sticker sets from the results
searchStickerSets :: Member TDLib r => SearchStickerSets -> Sem r (Error  StickerSets)
searchStickerSets :: SearchStickerSets -> Sem r (Error ∪ StickerSets)
searchStickerSets = SearchStickerSets -> Sem r (Error ∪ StickerSets)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Installs/uninstalls or activates/archives a sticker set
changeStickerSet :: Member TDLib r => ChangeStickerSet -> Sem r (Error  Ok)
changeStickerSet :: ChangeStickerSet -> Sem r (Error ∪ Ok)
changeStickerSet = ChangeStickerSet -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs the server that some trending sticker sets have been viewed by the user
viewTrendingStickerSets :: Member TDLib r => ViewTrendingStickerSets -> Sem r (Error  Ok)
viewTrendingStickerSets :: ViewTrendingStickerSets -> Sem r (Error ∪ Ok)
viewTrendingStickerSets = ViewTrendingStickerSets -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the order of installed sticker sets
reorderInstalledStickerSets :: Member TDLib r => ReorderInstalledStickerSets -> Sem r (Error  Ok)
reorderInstalledStickerSets :: ReorderInstalledStickerSets -> Sem r (Error ∪ Ok)
reorderInstalledStickerSets = ReorderInstalledStickerSets -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of recently used stickers
getRecentStickers :: Member TDLib r => GetRecentStickers -> Sem r (Error  Stickers)
getRecentStickers :: GetRecentStickers -> Sem r (Error ∪ Stickers)
getRecentStickers = GetRecentStickers -> Sem r (Error ∪ Stickers)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Manually adds a new sticker to the list of recently used stickers. The new sticker is added to the top of the list. If the sticker was already in the list, it is removed from the list first. Only stickers belonging to a sticker set can be added to this list
addRecentSticker :: Member TDLib r => AddRecentSticker -> Sem r (Error  Stickers)
addRecentSticker :: AddRecentSticker -> Sem r (Error ∪ Stickers)
addRecentSticker = AddRecentSticker -> Sem r (Error ∪ Stickers)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a sticker from the list of recently used stickers
removeRecentSticker :: Member TDLib r => RemoveRecentSticker -> Sem r (Error  Ok)
removeRecentSticker :: RemoveRecentSticker -> Sem r (Error ∪ Ok)
removeRecentSticker = RemoveRecentSticker -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Clears the list of recently used stickers
clearRecentStickers :: Member TDLib r => ClearRecentStickers -> Sem r (Error  Ok)
clearRecentStickers :: ClearRecentStickers -> Sem r (Error ∪ Ok)
clearRecentStickers = ClearRecentStickers -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns favorite stickers
getFavoriteStickers :: Member TDLib r => GetFavoriteStickers -> Sem r (Error  Stickers)
getFavoriteStickers :: GetFavoriteStickers -> Sem r (Error ∪ Stickers)
getFavoriteStickers = GetFavoriteStickers -> Sem r (Error ∪ Stickers)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a new sticker to the list of favorite stickers. The new sticker is added to the top of the list. If the sticker was already in the list, it is removed from the list first. Only stickers belonging to a sticker set can be added to this list
addFavoriteSticker :: Member TDLib r => AddFavoriteSticker -> Sem r (Error  Ok)
addFavoriteSticker :: AddFavoriteSticker -> Sem r (Error ∪ Ok)
addFavoriteSticker = AddFavoriteSticker -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a sticker from the list of favorite stickers
removeFavoriteSticker :: Member TDLib r => RemoveFavoriteSticker -> Sem r (Error  Ok)
removeFavoriteSticker :: RemoveFavoriteSticker -> Sem r (Error ∪ Ok)
removeFavoriteSticker = RemoveFavoriteSticker -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns emoji corresponding to a sticker. The list is only for informational purposes, because a sticker is always sent with a fixed emoji from the corresponding Sticker object
getStickerEmojis :: Member TDLib r => GetStickerEmojis -> Sem r (Error  Emojis)
getStickerEmojis :: GetStickerEmojis -> Sem r (Error ∪ Emojis)
getStickerEmojis = GetStickerEmojis -> Sem r (Error ∪ Emojis)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for emojis by keywords. Supported only if the file database is enabled
searchEmojis :: Member TDLib r => SearchEmojis -> Sem r (Error  Emojis)
searchEmojis :: SearchEmojis -> Sem r (Error ∪ Emojis)
searchEmojis = SearchEmojis -> Sem r (Error ∪ Emojis)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an HTTP URL which can be used to automatically log in to the translation platform and suggest new emoji replacements. The URL will be valid for 30 seconds after generation
getEmojiSuggestionsUrl :: Member TDLib r => GetEmojiSuggestionsUrl -> Sem r (Error  HttpUrl)
getEmojiSuggestionsUrl :: GetEmojiSuggestionsUrl -> Sem r (Error ∪ HttpUrl)
getEmojiSuggestionsUrl = GetEmojiSuggestionsUrl -> Sem r (Error ∪ HttpUrl)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns saved animations
getSavedAnimations :: Member TDLib r => GetSavedAnimations -> Sem r (Error  Animations)
getSavedAnimations :: GetSavedAnimations -> Sem r (Error ∪ Animations)
getSavedAnimations = GetSavedAnimations -> Sem r (Error ∪ Animations)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Manually adds a new animation to the list of saved animations. The new animation is added to the beginning of the list. If the animation was already in the list, it is removed first. Only non-secret video animations with MIME type "video/mp4" can be added to the list
addSavedAnimation :: Member TDLib r => AddSavedAnimation -> Sem r (Error  Ok)
addSavedAnimation :: AddSavedAnimation -> Sem r (Error ∪ Ok)
addSavedAnimation = AddSavedAnimation -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes an animation from the list of saved animations
removeSavedAnimation :: Member TDLib r => RemoveSavedAnimation -> Sem r (Error  Ok)
removeSavedAnimation :: RemoveSavedAnimation -> Sem r (Error ∪ Ok)
removeSavedAnimation = RemoveSavedAnimation -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns up to 20 recently used inline bots in the order of their last usage
getRecentInlineBots :: Member TDLib r => GetRecentInlineBots -> Sem r (Error  Users)
getRecentInlineBots :: GetRecentInlineBots -> Sem r (Error ∪ Users)
getRecentInlineBots = GetRecentInlineBots -> Sem r (Error ∪ Users)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for recently used hashtags by their prefix
searchHashtags :: Member TDLib r => SearchHashtags -> Sem r (Error  Hashtags)
searchHashtags :: SearchHashtags -> Sem r (Error ∪ Hashtags)
searchHashtags = SearchHashtags -> Sem r (Error ∪ Hashtags)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a hashtag from the list of recently used hashtags
removeRecentHashtag :: Member TDLib r => RemoveRecentHashtag -> Sem r (Error  Ok)
removeRecentHashtag :: RemoveRecentHashtag -> Sem r (Error ∪ Ok)
removeRecentHashtag = RemoveRecentHashtag -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a web page preview by the text of the message. Do not call this function too often. Returns a 404 error if the web page has no preview
getWebPagePreview :: Member TDLib r => GetWebPagePreview -> Sem r (Error  WebPage)
getWebPagePreview :: GetWebPagePreview -> Sem r (Error ∪ WebPage)
getWebPagePreview = GetWebPagePreview -> Sem r (Error ∪ WebPage)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an instant view version of a web page if available. Returns a 404 error if the web page has no instant view page
getWebPageInstantView :: Member TDLib r => GetWebPageInstantView -> Sem r (Error  WebPageInstantView)
getWebPageInstantView :: GetWebPageInstantView -> Sem r (Error ∪ WebPageInstantView)
getWebPageInstantView = GetWebPageInstantView -> Sem r (Error ∪ WebPageInstantView)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Uploads a new profile photo for the current user. If something changes, updateUser will be sent
setProfilePhoto :: Member TDLib r => SetProfilePhoto -> Sem r (Error  Ok)
setProfilePhoto :: SetProfilePhoto -> Sem r (Error ∪ Ok)
setProfilePhoto = SetProfilePhoto -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes a profile photo. If something changes, updateUser will be sent
deleteProfilePhoto :: Member TDLib r => DeleteProfilePhoto -> Sem r (Error  Ok)
deleteProfilePhoto :: DeleteProfilePhoto -> Sem r (Error ∪ Ok)
deleteProfilePhoto = DeleteProfilePhoto -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the first and last name of the current user. If something changes, updateUser will be sent
setName :: Member TDLib r => SetName -> Sem r (Error  Ok)
setName :: SetName -> Sem r (Error ∪ Ok)
setName = SetName -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the bio of the current user
setBio :: Member TDLib r => SetBio -> Sem r (Error  Ok)
setBio :: SetBio -> Sem r (Error ∪ Ok)
setBio = SetBio -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the username of the current user. If something changes, updateUser will be sent
setUsername :: Member TDLib r => SetUsername -> Sem r (Error  Ok)
setUsername :: SetUsername -> Sem r (Error ∪ Ok)
setUsername = SetUsername -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the location of the current user. Needs to be called if GetOption("is_location_visible") is true and location changes for more than 1 kilometer
setLocation :: Member TDLib r => SetLocation -> Sem r (Error  Ok)
setLocation :: SetLocation -> Sem r (Error ∪ Ok)
setLocation = SetLocation -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the phone number of the user and sends an authentication code to the user's new phone number. On success, returns information about the sent code
changePhoneNumber :: Member TDLib r => ChangePhoneNumber -> Sem r (Error  AuthenticationCodeInfo)
changePhoneNumber :: ChangePhoneNumber -> Sem r (Error ∪ AuthenticationCodeInfo)
changePhoneNumber = ChangePhoneNumber -> Sem r (Error ∪ AuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Re-sends the authentication code sent to confirm a new phone number for the user. Works only if the previously received authenticationCodeInfo next_code_type was not null
resendChangePhoneNumberCode :: Member TDLib r => ResendChangePhoneNumberCode -> Sem r (Error  AuthenticationCodeInfo)
resendChangePhoneNumberCode :: ResendChangePhoneNumberCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
resendChangePhoneNumberCode = ResendChangePhoneNumberCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the authentication code sent to confirm a new phone number of the user
checkChangePhoneNumberCode :: Member TDLib r => CheckChangePhoneNumberCode -> Sem r (Error  Ok)
checkChangePhoneNumberCode :: CheckChangePhoneNumberCode -> Sem r (Error ∪ Ok)
checkChangePhoneNumberCode = CheckChangePhoneNumberCode -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the list of commands supported by the bot; for bots only
setCommands :: Member TDLib r => SetCommands -> Sem r (Error  Ok)
setCommands :: SetCommands -> Sem r (Error ∪ Ok)
setCommands = SetCommands -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all active sessions of the current user
getActiveSessions :: Member TDLib r => GetActiveSessions -> Sem r (Error  Sessions)
getActiveSessions :: GetActiveSessions -> Sem r (Error ∪ Sessions)
getActiveSessions = GetActiveSessions -> Sem r (Error ∪ Sessions)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Terminates a session of the current user
terminateSession :: Member TDLib r => TerminateSession -> Sem r (Error  Ok)
terminateSession :: TerminateSession -> Sem r (Error ∪ Ok)
terminateSession = TerminateSession -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Terminates all other sessions of the current user
terminateAllOtherSessions :: Member TDLib r => TerminateAllOtherSessions -> Sem r (Error  Ok)
terminateAllOtherSessions :: TerminateAllOtherSessions -> Sem r (Error ∪ Ok)
terminateAllOtherSessions = TerminateAllOtherSessions -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all website where the current user used Telegram to log in
getConnectedWebsites :: Member TDLib r => GetConnectedWebsites -> Sem r (Error  ConnectedWebsites)
getConnectedWebsites :: GetConnectedWebsites -> Sem r (Error ∪ ConnectedWebsites)
getConnectedWebsites = GetConnectedWebsites -> Sem r (Error ∪ ConnectedWebsites)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Disconnects website from the current user's Telegram account
disconnectWebsite :: Member TDLib r => DisconnectWebsite -> Sem r (Error  Ok)
disconnectWebsite :: DisconnectWebsite -> Sem r (Error ∪ Ok)
disconnectWebsite = DisconnectWebsite -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Disconnects all websites from the current user's Telegram account
disconnectAllWebsites :: Member TDLib r => DisconnectAllWebsites -> Sem r (Error  Ok)
disconnectAllWebsites :: DisconnectAllWebsites -> Sem r (Error ∪ Ok)
disconnectAllWebsites = DisconnectAllWebsites -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the username of a supergroup or channel, requires owner privileges in the supergroup or channel
setSupergroupUsername :: Member TDLib r => SetSupergroupUsername -> Sem r (Error  Ok)
setSupergroupUsername :: SetSupergroupUsername -> Sem r (Error ∪ Ok)
setSupergroupUsername = SetSupergroupUsername -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the sticker set of a supergroup; requires can_change_info rights
setSupergroupStickerSet :: Member TDLib r => SetSupergroupStickerSet -> Sem r (Error  Ok)
setSupergroupStickerSet :: SetSupergroupStickerSet -> Sem r (Error ∪ Ok)
setSupergroupStickerSet = SetSupergroupStickerSet -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Toggles sender signatures messages sent in a channel; requires can_change_info rights
toggleSupergroupSignMessages :: Member TDLib r => ToggleSupergroupSignMessages -> Sem r (Error  Ok)
toggleSupergroupSignMessages :: ToggleSupergroupSignMessages -> Sem r (Error ∪ Ok)
toggleSupergroupSignMessages = ToggleSupergroupSignMessages -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Toggles whether the message history of a supergroup is available to new members; requires can_change_info rights
toggleSupergroupIsAllHistoryAvailable :: Member TDLib r => ToggleSupergroupIsAllHistoryAvailable -> Sem r (Error  Ok)
toggleSupergroupIsAllHistoryAvailable :: ToggleSupergroupIsAllHistoryAvailable -> Sem r (Error ∪ Ok)
toggleSupergroupIsAllHistoryAvailable = ToggleSupergroupIsAllHistoryAvailable -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Reports some messages from a user in a supergroup as spam; requires administrator rights in the supergroup
reportSupergroupSpam :: Member TDLib r => ReportSupergroupSpam -> Sem r (Error  Ok)
reportSupergroupSpam :: ReportSupergroupSpam -> Sem r (Error ∪ Ok)
reportSupergroupSpam = ReportSupergroupSpam -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about members or banned users in a supergroup or channel. Can be used only if SupergroupFullInfo.can_get_members == true; additionally, administrator privileges may be required for some filters
getSupergroupMembers :: Member TDLib r => GetSupergroupMembers -> Sem r (Error  ChatMembers)
getSupergroupMembers :: GetSupergroupMembers -> Sem r (Error ∪ ChatMembers)
getSupergroupMembers = GetSupergroupMembers -> Sem r (Error ∪ ChatMembers)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes a supergroup or channel along with all messages in the corresponding chat. This will release the supergroup or channel username and remove all members; requires owner privileges in the supergroup or channel. Chats with more than 1000 members can't be deleted using this method
deleteSupergroup :: Member TDLib r => DeleteSupergroup -> Sem r (Error  Ok)
deleteSupergroup :: DeleteSupergroup -> Sem r (Error ∪ Ok)
deleteSupergroup = DeleteSupergroup -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Closes a secret chat, effectively transferring its state to secretChatStateClosed
closeSecretChat :: Member TDLib r => CloseSecretChat -> Sem r (Error  Ok)
closeSecretChat :: CloseSecretChat -> Sem r (Error ∪ Ok)
closeSecretChat = CloseSecretChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a list of service actions taken by chat members and administrators in the last 48 hours. Available only for supergroups and channels. Requires administrator rights. Returns results in reverse chronological order (i. e., in order of decreasing event_id)
getChatEventLog :: Member TDLib r => GetChatEventLog -> Sem r (Error  ChatEvents)
getChatEventLog :: GetChatEventLog -> Sem r (Error ∪ ChatEvents)
getChatEventLog = GetChatEventLog -> Sem r (Error ∪ ChatEvents)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an invoice payment form. This method should be called when the user presses inlineKeyboardButtonBuy
getPaymentForm :: Member TDLib r => GetPaymentForm -> Sem r (Error  PaymentForm)
getPaymentForm :: GetPaymentForm -> Sem r (Error ∪ PaymentForm)
getPaymentForm = GetPaymentForm -> Sem r (Error ∪ PaymentForm)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Validates the order information provided by a user and returns the available shipping options for a flexible invoice
validateOrderInfo :: Member TDLib r => ValidateOrderInfo -> Sem r (Error  ValidatedOrderInfo)
validateOrderInfo :: ValidateOrderInfo -> Sem r (Error ∪ ValidatedOrderInfo)
validateOrderInfo = ValidateOrderInfo -> Sem r (Error ∪ ValidatedOrderInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a filled-out payment form to the bot for final verification
sendPaymentForm :: Member TDLib r => SendPaymentForm -> Sem r (Error  PaymentResult)
sendPaymentForm :: SendPaymentForm -> Sem r (Error ∪ PaymentResult)
sendPaymentForm = SendPaymentForm -> Sem r (Error ∪ PaymentResult)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a successful payment
getPaymentReceipt :: Member TDLib r => GetPaymentReceipt -> Sem r (Error  PaymentReceipt)
getPaymentReceipt :: GetPaymentReceipt -> Sem r (Error ∪ PaymentReceipt)
getPaymentReceipt = GetPaymentReceipt -> Sem r (Error ∪ PaymentReceipt)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns saved order info, if any
getSavedOrderInfo :: Member TDLib r => GetSavedOrderInfo -> Sem r (Error  OrderInfo)
getSavedOrderInfo :: GetSavedOrderInfo -> Sem r (Error ∪ OrderInfo)
getSavedOrderInfo = GetSavedOrderInfo -> Sem r (Error ∪ OrderInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes saved order info
deleteSavedOrderInfo :: Member TDLib r => DeleteSavedOrderInfo -> Sem r (Error  Ok)
deleteSavedOrderInfo :: DeleteSavedOrderInfo -> Sem r (Error ∪ Ok)
deleteSavedOrderInfo = DeleteSavedOrderInfo -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes saved credentials for all payment provider bots
deleteSavedCredentials :: Member TDLib r => DeleteSavedCredentials -> Sem r (Error  Ok)
deleteSavedCredentials :: DeleteSavedCredentials -> Sem r (Error ∪ Ok)
deleteSavedCredentials = DeleteSavedCredentials -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a user that can be contacted to get support
getSupportUser :: Member TDLib r => GetSupportUser -> Sem r (Error  User)
getSupportUser :: GetSupportUser -> Sem r (Error ∪ User)
getSupportUser = GetSupportUser -> Sem r (Error ∪ User)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns backgrounds installed by the user
getBackgrounds :: Member TDLib r => GetBackgrounds -> Sem r (Error  Backgrounds)
getBackgrounds :: GetBackgrounds -> Sem r (Error ∪ Backgrounds)
getBackgrounds = GetBackgrounds -> Sem r (Error ∪ Backgrounds)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Constructs a persistent HTTP URL for a background
getBackgroundUrl :: Member TDLib r => GetBackgroundUrl -> Sem r (Error  HttpUrl)
getBackgroundUrl :: GetBackgroundUrl -> Sem r (Error ∪ HttpUrl)
getBackgroundUrl = GetBackgroundUrl -> Sem r (Error ∪ HttpUrl)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Searches for a background by its name
searchBackground :: Member TDLib r => SearchBackground -> Sem r (Error  Background)
searchBackground :: SearchBackground -> Sem r (Error ∪ Background)
searchBackground = SearchBackground -> Sem r (Error ∪ Background)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the background selected by the user; adds background to the list of installed backgrounds
setBackground :: Member TDLib r => SetBackground -> Sem r (Error  Background)
setBackground :: SetBackground -> Sem r (Error ∪ Background)
setBackground = SetBackground -> Sem r (Error ∪ Background)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes background from the list of installed backgrounds
removeBackground :: Member TDLib r => RemoveBackground -> Sem r (Error  Ok)
removeBackground :: RemoveBackground -> Sem r (Error ∪ Ok)
removeBackground = RemoveBackground -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Resets list of installed backgrounds to its default value
resetBackgrounds :: Member TDLib r => ResetBackgrounds -> Sem r (Error  Ok)
resetBackgrounds :: ResetBackgrounds -> Sem r (Error ∪ Ok)
resetBackgrounds = ResetBackgrounds -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about the current localization target. This is an offline request if only_local is true. Can be called before authorization
getLocalizationTargetInfo :: Member TDLib r => GetLocalizationTargetInfo -> Sem r (Error  LocalizationTargetInfo)
getLocalizationTargetInfo :: GetLocalizationTargetInfo -> Sem r (Error ∪ LocalizationTargetInfo)
getLocalizationTargetInfo = GetLocalizationTargetInfo -> Sem r (Error ∪ LocalizationTargetInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a language pack. Returned language pack identifier may be different from a provided one. Can be called before authorization
getLanguagePackInfo :: Member TDLib r => GetLanguagePackInfo -> Sem r (Error  LanguagePackInfo)
getLanguagePackInfo :: GetLanguagePackInfo -> Sem r (Error ∪ LanguagePackInfo)
getLanguagePackInfo = GetLanguagePackInfo -> Sem r (Error ∪ LanguagePackInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns strings from a language pack in the current localization target by their keys. Can be called before authorization
getLanguagePackStrings :: Member TDLib r => GetLanguagePackStrings -> Sem r (Error  LanguagePackStrings)
getLanguagePackStrings :: GetLanguagePackStrings -> Sem r (Error ∪ LanguagePackStrings)
getLanguagePackStrings = GetLanguagePackStrings -> Sem r (Error ∪ LanguagePackStrings)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Fetches the latest versions of all strings from a language pack in the current localization target from the server. This method doesn't need to be called explicitly for the current used/base language packs. Can be called before authorization
synchronizeLanguagePack :: Member TDLib r => SynchronizeLanguagePack -> Sem r (Error  Ok)
synchronizeLanguagePack :: SynchronizeLanguagePack -> Sem r (Error ∪ Ok)
synchronizeLanguagePack = SynchronizeLanguagePack -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a custom server language pack to the list of installed language packs in current localization target. Can be called before authorization
addCustomServerLanguagePack :: Member TDLib r => AddCustomServerLanguagePack -> Sem r (Error  Ok)
addCustomServerLanguagePack :: AddCustomServerLanguagePack -> Sem r (Error ∪ Ok)
addCustomServerLanguagePack = AddCustomServerLanguagePack -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds or changes a custom local language pack to the current localization target
setCustomLanguagePack :: Member TDLib r => SetCustomLanguagePack -> Sem r (Error  Ok)
setCustomLanguagePack :: SetCustomLanguagePack -> Sem r (Error ∪ Ok)
setCustomLanguagePack = SetCustomLanguagePack -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits information about a custom local language pack in the current localization target. Can be called before authorization
editCustomLanguagePackInfo :: Member TDLib r => EditCustomLanguagePackInfo -> Sem r (Error  Ok)
editCustomLanguagePackInfo :: EditCustomLanguagePackInfo -> Sem r (Error ∪ Ok)
editCustomLanguagePackInfo = EditCustomLanguagePackInfo -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds, edits or deletes a string in a custom local language pack. Can be called before authorization
setCustomLanguagePackString :: Member TDLib r => SetCustomLanguagePackString -> Sem r (Error  Ok)
setCustomLanguagePackString :: SetCustomLanguagePackString -> Sem r (Error ∪ Ok)
setCustomLanguagePackString = SetCustomLanguagePackString -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes all information about a language pack in the current localization target. The language pack which is currently in use (including base language pack) or is being synchronized can't be deleted. Can be called before authorization
deleteLanguagePack :: Member TDLib r => DeleteLanguagePack -> Sem r (Error  Ok)
deleteLanguagePack :: DeleteLanguagePack -> Sem r (Error ∪ Ok)
deleteLanguagePack = DeleteLanguagePack -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Registers the currently used device for receiving push notifications. Returns a globally unique identifier of the push notification subscription
registerDevice :: Member TDLib r => RegisterDevice -> Sem r (Error  PushReceiverId)
registerDevice :: RegisterDevice -> Sem r (Error ∪ PushReceiverId)
registerDevice = RegisterDevice -> Sem r (Error ∪ PushReceiverId)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Handles a push notification. Returns error with code 406 if the push notification is not supported and connection to the server is required to fetch new data. Can be called before authorization
processPushNotification :: Member TDLib r => ProcessPushNotification -> Sem r (Error  Ok)
processPushNotification :: ProcessPushNotification -> Sem r (Error ∪ Ok)
processPushNotification = ProcessPushNotification -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a globally unique push notification subscription identifier for identification of an account, which has received a push notification. This is an offline method. Can be called before authorization. Can be called synchronously
getPushReceiverId :: Member TDLib r => GetPushReceiverId -> Sem r (Error  PushReceiverId)
getPushReceiverId :: GetPushReceiverId -> Sem r (Error ∪ PushReceiverId)
getPushReceiverId = GetPushReceiverId -> Sem r (Error ∪ PushReceiverId)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns t.me URLs recently visited by a newly registered user
getRecentlyVisitedTMeUrls :: Member TDLib r => GetRecentlyVisitedTMeUrls -> Sem r (Error  TMeUrls)
getRecentlyVisitedTMeUrls :: GetRecentlyVisitedTMeUrls -> Sem r (Error ∪ TMeUrls)
getRecentlyVisitedTMeUrls = GetRecentlyVisitedTMeUrls -> Sem r (Error ∪ TMeUrls)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes user privacy settings
setUserPrivacySettingRules :: Member TDLib r => SetUserPrivacySettingRules -> Sem r (Error  Ok)
setUserPrivacySettingRules :: SetUserPrivacySettingRules -> Sem r (Error ∪ Ok)
setUserPrivacySettingRules = SetUserPrivacySettingRules -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the current privacy settings
getUserPrivacySettingRules :: Member TDLib r => GetUserPrivacySettingRules -> Sem r (Error  UserPrivacySettingRules)
getUserPrivacySettingRules :: GetUserPrivacySettingRules
-> Sem r (Error ∪ UserPrivacySettingRules)
getUserPrivacySettingRules = GetUserPrivacySettingRules
-> Sem r (Error ∪ UserPrivacySettingRules)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the value of an option by its name. (Check the list of available options on https://core.telegram.org/tdlib/options.) Can be called before authorization
getOption :: Member TDLib r => GetOption -> Sem r (Error  OptionValue)
getOption :: GetOption -> Sem r (Error ∪ OptionValue)
getOption = GetOption -> Sem r (Error ∪ OptionValue)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the value of an option. (Check the list of available options on https://core.telegram.org/tdlib/options.) Only writable options can be set. Can be called before authorization
setOption :: Member TDLib r => SetOption -> Sem r (Error  Ok)
setOption :: SetOption -> Sem r (Error ∪ Ok)
setOption = SetOption -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the period of inactivity after which the account of the current user will automatically be deleted
setAccountTtl :: Member TDLib r => SetAccountTtl -> Sem r (Error  Ok)
setAccountTtl :: SetAccountTtl -> Sem r (Error ∪ Ok)
setAccountTtl = SetAccountTtl -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the period of inactivity after which the account of the current user will automatically be deleted
getAccountTtl :: Member TDLib r => GetAccountTtl -> Sem r (Error  AccountTtl)
getAccountTtl :: GetAccountTtl -> Sem r (Error ∪ AccountTtl)
getAccountTtl = GetAccountTtl -> Sem r (Error ∪ AccountTtl)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes the account of the current user, deleting all information associated with the user from the server. The phone number of the account can be used to create a new account. Can be called before authorization when the current authorization state is authorizationStateWaitPassword
deleteAccount :: Member TDLib r => DeleteAccount -> Sem r (Error  Ok)
deleteAccount :: DeleteAccount -> Sem r (Error ∪ Ok)
deleteAccount = DeleteAccount -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a chat action bar without any other action
removeChatActionBar :: Member TDLib r => RemoveChatActionBar -> Sem r (Error  Ok)
removeChatActionBar :: RemoveChatActionBar -> Sem r (Error ∪ Ok)
removeChatActionBar = RemoveChatActionBar -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Reports a chat to the Telegram moderators. A chat can be reported only from the chat action bar, or if this is a private chats with a bot, a private chat with a user sharing their location, a supergroup, or a channel, since other chats can't be checked by moderators
reportChat :: Member TDLib r => ReportChat -> Sem r (Error  Ok)
reportChat :: ReportChat -> Sem r (Error ∪ Ok)
reportChat = ReportChat -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an HTTP URL with the chat statistics. Currently this method of getting the statistics is disabled and can be deleted in the future
getChatStatisticsUrl :: Member TDLib r => GetChatStatisticsUrl -> Sem r (Error  HttpUrl)
getChatStatisticsUrl :: GetChatStatisticsUrl -> Sem r (Error ∪ HttpUrl)
getChatStatisticsUrl = GetChatStatisticsUrl -> Sem r (Error ∪ HttpUrl)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns detailed statistics about a chat. Currently this method can be used only for channels. Requires administrator rights in the channel
getChatStatistics :: Member TDLib r => GetChatStatistics -> Sem r (Error  ChatStatistics)
getChatStatistics :: GetChatStatistics -> Sem r (Error ∪ ChatStatistics)
getChatStatistics = GetChatStatistics -> Sem r (Error ∪ ChatStatistics)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Loads asynchronous or zoomed in chat statistics graph
getChatStatisticsGraph :: Member TDLib r => GetChatStatisticsGraph -> Sem r (Error  StatisticsGraph)
getChatStatisticsGraph :: GetChatStatisticsGraph -> Sem r (Error ∪ StatisticsGraph)
getChatStatisticsGraph = GetChatStatisticsGraph -> Sem r (Error ∪ StatisticsGraph)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns storage usage statistics. Can be called before authorization
getStorageStatistics :: Member TDLib r => GetStorageStatistics -> Sem r (Error  StorageStatistics)
getStorageStatistics :: GetStorageStatistics -> Sem r (Error ∪ StorageStatistics)
getStorageStatistics = GetStorageStatistics -> Sem r (Error ∪ StorageStatistics)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Quickly returns approximate storage usage statistics. Can be called before authorization
getStorageStatisticsFast :: Member TDLib r => GetStorageStatisticsFast -> Sem r (Error  StorageStatisticsFast)
getStorageStatisticsFast :: GetStorageStatisticsFast -> Sem r (Error ∪ StorageStatisticsFast)
getStorageStatisticsFast = GetStorageStatisticsFast -> Sem r (Error ∪ StorageStatisticsFast)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns database statistics
getDatabaseStatistics :: Member TDLib r => GetDatabaseStatistics -> Sem r (Error  DatabaseStatistics)
getDatabaseStatistics :: GetDatabaseStatistics -> Sem r (Error ∪ DatabaseStatistics)
getDatabaseStatistics = GetDatabaseStatistics -> Sem r (Error ∪ DatabaseStatistics)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Optimizes storage usage, i.e. deletes some files and returns new storage usage statistics. Secret thumbnails can't be deleted
optimizeStorage :: Member TDLib r => OptimizeStorage -> Sem r (Error  StorageStatistics)
optimizeStorage :: OptimizeStorage -> Sem r (Error ∪ StorageStatistics)
optimizeStorage = OptimizeStorage -> Sem r (Error ∪ StorageStatistics)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the current network type. Can be called before authorization. Calling this method forces all network connections to reopen, mitigating the delay in switching between different networks, so it should be called whenever the network is changed, even if the network type remains the same.
setNetworkType :: Member TDLib r => SetNetworkType -> Sem r (Error  Ok)
setNetworkType :: SetNetworkType -> Sem r (Error ∪ Ok)
setNetworkType = SetNetworkType -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns network data usage statistics. Can be called before authorization
getNetworkStatistics :: Member TDLib r => GetNetworkStatistics -> Sem r (Error  NetworkStatistics)
getNetworkStatistics :: GetNetworkStatistics -> Sem r (Error ∪ NetworkStatistics)
getNetworkStatistics = GetNetworkStatistics -> Sem r (Error ∪ NetworkStatistics)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds the specified data to data usage statistics. Can be called before authorization
addNetworkStatistics :: Member TDLib r => AddNetworkStatistics -> Sem r (Error  Ok)
addNetworkStatistics :: AddNetworkStatistics -> Sem r (Error ∪ Ok)
addNetworkStatistics = AddNetworkStatistics -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Resets all network data usage statistics to zero. Can be called before authorization
resetNetworkStatistics :: Member TDLib r => ResetNetworkStatistics -> Sem r (Error  Ok)
resetNetworkStatistics :: ResetNetworkStatistics -> Sem r (Error ∪ Ok)
resetNetworkStatistics = ResetNetworkStatistics -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns auto-download settings presets for the current user
getAutoDownloadSettingsPresets :: Member TDLib r => GetAutoDownloadSettingsPresets -> Sem r (Error  AutoDownloadSettingsPresets)
getAutoDownloadSettingsPresets :: GetAutoDownloadSettingsPresets
-> Sem r (Error ∪ AutoDownloadSettingsPresets)
getAutoDownloadSettingsPresets = GetAutoDownloadSettingsPresets
-> Sem r (Error ∪ AutoDownloadSettingsPresets)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets auto-download settings
setAutoDownloadSettings :: Member TDLib r => SetAutoDownloadSettings -> Sem r (Error  Ok)
setAutoDownloadSettings :: SetAutoDownloadSettings -> Sem r (Error ∪ Ok)
setAutoDownloadSettings = SetAutoDownloadSettings -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a bank card
getBankCardInfo :: Member TDLib r => GetBankCardInfo -> Sem r (Error  BankCardInfo)
getBankCardInfo :: GetBankCardInfo -> Sem r (Error ∪ BankCardInfo)
getBankCardInfo = GetBankCardInfo -> Sem r (Error ∪ BankCardInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns one of the available Telegram Passport elements
getPassportElement :: Member TDLib r => GetPassportElement -> Sem r (Error  PassportElement)
getPassportElement :: GetPassportElement -> Sem r (Error ∪ PassportElement)
getPassportElement = GetPassportElement -> Sem r (Error ∪ PassportElement)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns all available Telegram Passport elements
getAllPassportElements :: Member TDLib r => GetAllPassportElements -> Sem r (Error  PassportElements)
getAllPassportElements :: GetAllPassportElements -> Sem r (Error ∪ PassportElements)
getAllPassportElements = GetAllPassportElements -> Sem r (Error ∪ PassportElements)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds an element to the user's Telegram Passport. May return an error with a message "PHONE_VERIFICATION_NEEDED" or "EMAIL_VERIFICATION_NEEDED" if the chosen phone number or the chosen email address must be verified first
setPassportElement :: Member TDLib r => SetPassportElement -> Sem r (Error  PassportElement)
setPassportElement :: SetPassportElement -> Sem r (Error ∪ PassportElement)
setPassportElement = SetPassportElement -> Sem r (Error ∪ PassportElement)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Deletes a Telegram Passport element
deletePassportElement :: Member TDLib r => DeletePassportElement -> Sem r (Error  Ok)
deletePassportElement :: DeletePassportElement -> Sem r (Error ∪ Ok)
deletePassportElement = DeletePassportElement -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs the user that some of the elements in their Telegram Passport contain errors; for bots only. The user will not be able to resend the elements, until the errors are fixed
setPassportElementErrors :: Member TDLib r => SetPassportElementErrors -> Sem r (Error  Ok)
setPassportElementErrors :: SetPassportElementErrors -> Sem r (Error ∪ Ok)
setPassportElementErrors = SetPassportElementErrors -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an IETF language tag of the language preferred in the country, which should be used to fill native fields in Telegram Passport personal details. Returns a 404 error if unknown
getPreferredCountryLanguage :: Member TDLib r => GetPreferredCountryLanguage -> Sem r (Error  Text)
getPreferredCountryLanguage :: GetPreferredCountryLanguage -> Sem r (Error ∪ Text)
getPreferredCountryLanguage = GetPreferredCountryLanguage -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a code to verify a phone number to be added to a user's Telegram Passport
sendPhoneNumberVerificationCode :: Member TDLib r => SendPhoneNumberVerificationCode -> Sem r (Error  AuthenticationCodeInfo)
sendPhoneNumberVerificationCode :: SendPhoneNumberVerificationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
sendPhoneNumberVerificationCode = SendPhoneNumberVerificationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Re-sends the code to verify a phone number to be added to a user's Telegram Passport
resendPhoneNumberVerificationCode :: Member TDLib r => ResendPhoneNumberVerificationCode -> Sem r (Error  AuthenticationCodeInfo)
resendPhoneNumberVerificationCode :: ResendPhoneNumberVerificationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
resendPhoneNumberVerificationCode = ResendPhoneNumberVerificationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the phone number verification code for Telegram Passport
checkPhoneNumberVerificationCode :: Member TDLib r => CheckPhoneNumberVerificationCode -> Sem r (Error  Ok)
checkPhoneNumberVerificationCode :: CheckPhoneNumberVerificationCode -> Sem r (Error ∪ Ok)
checkPhoneNumberVerificationCode = CheckPhoneNumberVerificationCode -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a code to verify an email address to be added to a user's Telegram Passport
sendEmailAddressVerificationCode :: Member TDLib r => SendEmailAddressVerificationCode -> Sem r (Error  EmailAddressAuthenticationCodeInfo)
sendEmailAddressVerificationCode :: SendEmailAddressVerificationCode
-> Sem r (Error ∪ EmailAddressAuthenticationCodeInfo)
sendEmailAddressVerificationCode = SendEmailAddressVerificationCode
-> Sem r (Error ∪ EmailAddressAuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Re-sends the code to verify an email address to be added to a user's Telegram Passport
resendEmailAddressVerificationCode :: Member TDLib r => ResendEmailAddressVerificationCode -> Sem r (Error  EmailAddressAuthenticationCodeInfo)
resendEmailAddressVerificationCode :: ResendEmailAddressVerificationCode
-> Sem r (Error ∪ EmailAddressAuthenticationCodeInfo)
resendEmailAddressVerificationCode = ResendEmailAddressVerificationCode
-> Sem r (Error ∪ EmailAddressAuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks the email address verification code for Telegram Passport
checkEmailAddressVerificationCode :: Member TDLib r => CheckEmailAddressVerificationCode -> Sem r (Error  Ok)
checkEmailAddressVerificationCode :: CheckEmailAddressVerificationCode -> Sem r (Error ∪ Ok)
checkEmailAddressVerificationCode = CheckEmailAddressVerificationCode -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns a Telegram Passport authorization form for sharing data with a service
getPassportAuthorizationForm :: Member TDLib r => GetPassportAuthorizationForm -> Sem r (Error  PassportAuthorizationForm)
getPassportAuthorizationForm :: GetPassportAuthorizationForm
-> Sem r (Error ∪ PassportAuthorizationForm)
getPassportAuthorizationForm = GetPassportAuthorizationForm
-> Sem r (Error ∪ PassportAuthorizationForm)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns already available Telegram Passport elements suitable for completing a Telegram Passport authorization form. Result can be received only once for each authorization form
getPassportAuthorizationFormAvailableElements :: Member TDLib r => GetPassportAuthorizationFormAvailableElements -> Sem r (Error  PassportElementsWithErrors)
getPassportAuthorizationFormAvailableElements :: GetPassportAuthorizationFormAvailableElements
-> Sem r (Error ∪ PassportElementsWithErrors)
getPassportAuthorizationFormAvailableElements = GetPassportAuthorizationFormAvailableElements
-> Sem r (Error ∪ PassportElementsWithErrors)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a Telegram Passport authorization form, effectively sharing data with the service. This method must be called after getPassportAuthorizationFormAvailableElements if some previously available elements need to be used
sendPassportAuthorizationForm :: Member TDLib r => SendPassportAuthorizationForm -> Sem r (Error  Ok)
sendPassportAuthorizationForm :: SendPassportAuthorizationForm -> Sem r (Error ∪ Ok)
sendPassportAuthorizationForm = SendPassportAuthorizationForm -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends phone number confirmation code. Should be called when user presses "https://t.me/confirmphone?phone=*******&hash=**********" or "tg://confirmphone?phone=*******&hash=**********" link
sendPhoneNumberConfirmationCode :: Member TDLib r => SendPhoneNumberConfirmationCode -> Sem r (Error  AuthenticationCodeInfo)
sendPhoneNumberConfirmationCode :: SendPhoneNumberConfirmationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
sendPhoneNumberConfirmationCode = SendPhoneNumberConfirmationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Resends phone number confirmation code
resendPhoneNumberConfirmationCode :: Member TDLib r => ResendPhoneNumberConfirmationCode -> Sem r (Error  AuthenticationCodeInfo)
resendPhoneNumberConfirmationCode :: ResendPhoneNumberConfirmationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
resendPhoneNumberConfirmationCode = ResendPhoneNumberConfirmationCode
-> Sem r (Error ∪ AuthenticationCodeInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Checks phone number confirmation code
checkPhoneNumberConfirmationCode :: Member TDLib r => CheckPhoneNumberConfirmationCode -> Sem r (Error  Ok)
checkPhoneNumberConfirmationCode :: CheckPhoneNumberConfirmationCode -> Sem r (Error ∪ Ok)
checkPhoneNumberConfirmationCode = CheckPhoneNumberConfirmationCode -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Informs the server about the number of pending bot updates if they haven't been processed for a long time; for bots only
setBotUpdatesStatus :: Member TDLib r => SetBotUpdatesStatus -> Sem r (Error  Ok)
setBotUpdatesStatus :: SetBotUpdatesStatus -> Sem r (Error ∪ Ok)
setBotUpdatesStatus = SetBotUpdatesStatus -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Uploads a PNG image with a sticker; for bots only; returns the uploaded file
uploadStickerFile :: Member TDLib r => UploadStickerFile -> Sem r (Error  File)
uploadStickerFile :: UploadStickerFile -> Sem r (Error ∪ File)
uploadStickerFile = UploadStickerFile -> Sem r (Error ∪ File)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Creates a new sticker set; for bots only. Returns the newly created sticker set
createNewStickerSet :: Member TDLib r => CreateNewStickerSet -> Sem r (Error  StickerSet)
createNewStickerSet :: CreateNewStickerSet -> Sem r (Error ∪ StickerSet)
createNewStickerSet = CreateNewStickerSet -> Sem r (Error ∪ StickerSet)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a new sticker to a set; for bots only. Returns the sticker set
addStickerToSet :: Member TDLib r => AddStickerToSet -> Sem r (Error  StickerSet)
addStickerToSet :: AddStickerToSet -> Sem r (Error ∪ StickerSet)
addStickerToSet = AddStickerToSet -> Sem r (Error ∪ StickerSet)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets a sticker set thumbnail; for bots only. Returns the sticker set
setStickerSetThumbnail :: Member TDLib r => SetStickerSetThumbnail -> Sem r (Error  StickerSet)
setStickerSetThumbnail :: SetStickerSetThumbnail -> Sem r (Error ∪ StickerSet)
setStickerSetThumbnail = SetStickerSetThumbnail -> Sem r (Error ∪ StickerSet)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Changes the position of a sticker in the set to which it belongs; for bots only. The sticker set must have been created by the bot
setStickerPositionInSet :: Member TDLib r => SetStickerPositionInSet -> Sem r (Error  Ok)
setStickerPositionInSet :: SetStickerPositionInSet -> Sem r (Error ∪ Ok)
setStickerPositionInSet = SetStickerPositionInSet -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a sticker from the set to which it belongs; for bots only. The sticker set must have been created by the bot
removeStickerFromSet :: Member TDLib r => RemoveStickerFromSet -> Sem r (Error  Ok)
removeStickerFromSet :: RemoveStickerFromSet -> Sem r (Error ∪ Ok)
removeStickerFromSet = RemoveStickerFromSet -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a file with a map thumbnail in PNG format. Only map thumbnail files with size less than 1MB can be downloaded
getMapThumbnailFile :: Member TDLib r => GetMapThumbnailFile -> Sem r (Error  File)
getMapThumbnailFile :: GetMapThumbnailFile -> Sem r (Error ∪ File)
getMapThumbnailFile = GetMapThumbnailFile -> Sem r (Error ∪ File)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Accepts Telegram terms of services
acceptTermsOfService :: Member TDLib r => AcceptTermsOfService -> Sem r (Error  Ok)
acceptTermsOfService :: AcceptTermsOfService -> Sem r (Error ∪ Ok)
acceptTermsOfService = AcceptTermsOfService -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a custom request; for bots only
sendCustomRequest :: Member TDLib r => SendCustomRequest -> Sem r (Error  CustomRequestResult)
sendCustomRequest :: SendCustomRequest -> Sem r (Error ∪ CustomRequestResult)
sendCustomRequest = SendCustomRequest -> Sem r (Error ∪ CustomRequestResult)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Answers a custom query; for bots only
answerCustomQuery :: Member TDLib r => AnswerCustomQuery -> Sem r (Error  Ok)
answerCustomQuery :: AnswerCustomQuery -> Sem r (Error ∪ Ok)
answerCustomQuery = AnswerCustomQuery -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Succeeds after a specified amount of time has passed. Can be called before authorization. Can be called before initialization
setAlarm :: Member TDLib r => SetAlarm -> Sem r (Error  Ok)
setAlarm :: SetAlarm -> Sem r (Error ∪ Ok)
setAlarm = SetAlarm -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Uses current user IP address to found their country. Returns two-letter ISO 3166-1 alpha-2 country code. Can be called before authorization
getCountryCode :: Member TDLib r => GetCountryCode -> Sem r (Error  Text)
getCountryCode :: GetCountryCode -> Sem r (Error ∪ Text)
getCountryCode = GetCountryCode -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the default text for invitation messages to be used as a placeholder when the current user invites friends to Telegram
getInviteText :: Member TDLib r => GetInviteText -> Sem r (Error  Text)
getInviteText :: GetInviteText -> Sem r (Error ∪ Text)
getInviteText = GetInviteText -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about a tg:// deep link. Use "tg://need_update_for_some_feature" or "tg:some_unsupported_feature" for testing. Returns a 404 error for unknown links. Can be called before authorization
getDeepLinkInfo :: Member TDLib r => GetDeepLinkInfo -> Sem r (Error  DeepLinkInfo)
getDeepLinkInfo :: GetDeepLinkInfo -> Sem r (Error ∪ DeepLinkInfo)
getDeepLinkInfo = GetDeepLinkInfo -> Sem r (Error ∪ DeepLinkInfo)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns application config, provided by the server. Can be called before authorization
getApplicationConfig :: Member TDLib r => GetApplicationConfig -> Sem r (Error  JsonValue)
getApplicationConfig :: GetApplicationConfig -> Sem r (Error ∪ JsonValue)
getApplicationConfig = GetApplicationConfig -> Sem r (Error ∪ JsonValue)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Saves application log event on the server. Can be called before authorization
saveApplicationLogEvent :: Member TDLib r => SaveApplicationLogEvent -> Sem r (Error  Ok)
saveApplicationLogEvent :: SaveApplicationLogEvent -> Sem r (Error ∪ Ok)
saveApplicationLogEvent = SaveApplicationLogEvent -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a proxy server for network requests. Can be called before authorization
addProxy :: Member TDLib r => AddProxy -> Sem r (Error  Proxy)
addProxy :: AddProxy -> Sem r (Error ∪ Proxy)
addProxy = AddProxy -> Sem r (Error ∪ Proxy)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Edits an existing proxy server for network requests. Can be called before authorization
editProxy :: Member TDLib r => EditProxy -> Sem r (Error  Proxy)
editProxy :: EditProxy -> Sem r (Error ∪ Proxy)
editProxy = EditProxy -> Sem r (Error ∪ Proxy)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Enables a proxy. Only one proxy can be enabled at a time. Can be called before authorization
enableProxy :: Member TDLib r => EnableProxy -> Sem r (Error  Ok)
enableProxy :: EnableProxy -> Sem r (Error ∪ Ok)
enableProxy = EnableProxy -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Disables the currently enabled proxy. Can be called before authorization
disableProxy :: Member TDLib r => DisableProxy -> Sem r (Error  Ok)
disableProxy :: DisableProxy -> Sem r (Error ∪ Ok)
disableProxy = DisableProxy -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Removes a proxy server. Can be called before authorization
removeProxy :: Member TDLib r => RemoveProxy -> Sem r (Error  Ok)
removeProxy :: RemoveProxy -> Sem r (Error ∪ Ok)
removeProxy = RemoveProxy -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns list of proxies that are currently set up. Can be called before authorization
getProxies :: Member TDLib r => GetProxies -> Sem r (Error  Proxies)
getProxies :: GetProxies -> Sem r (Error ∪ Proxies)
getProxies = GetProxies -> Sem r (Error ∪ Proxies)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns an HTTPS link, which can be used to add a proxy. Available only for SOCKS5 and MTProto proxies. Can be called before authorization
getProxyLink :: Member TDLib r => GetProxyLink -> Sem r (Error  Text)
getProxyLink :: GetProxyLink -> Sem r (Error ∪ Text)
getProxyLink = GetProxyLink -> Sem r (Error ∪ Text)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Computes time needed to receive a response from a Telegram server through a proxy. Can be called before authorization
pingProxy :: Member TDLib r => PingProxy -> Sem r (Error  Seconds)
pingProxy :: PingProxy -> Sem r (Error ∪ Seconds)
pingProxy = PingProxy -> Sem r (Error ∪ Seconds)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets new log stream for internal logging of TDLib. This is an offline method. Can be called before authorization. Can be called synchronously
setLogStream :: Member TDLib r => SetLogStream -> Sem r (Error  Ok)
setLogStream :: SetLogStream -> Sem r (Error ∪ Ok)
setLogStream = SetLogStream -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns information about currently used log stream for internal logging of TDLib. This is an offline method. Can be called before authorization. Can be called synchronously
getLogStream :: Member TDLib r => GetLogStream -> Sem r (Error  LogStream)
getLogStream :: GetLogStream -> Sem r (Error ∪ LogStream)
getLogStream = GetLogStream -> Sem r (Error ∪ LogStream)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the verbosity level of the internal logging of TDLib. This is an offline method. Can be called before authorization. Can be called synchronously
setLogVerbosityLevel :: Member TDLib r => SetLogVerbosityLevel -> Sem r (Error  Ok)
setLogVerbosityLevel :: SetLogVerbosityLevel -> Sem r (Error ∪ Ok)
setLogVerbosityLevel = SetLogVerbosityLevel -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns current verbosity level of the internal logging of TDLib. This is an offline method. Can be called before authorization. Can be called synchronously
getLogVerbosityLevel :: Member TDLib r => GetLogVerbosityLevel -> Sem r (Error  LogVerbosityLevel)
getLogVerbosityLevel :: GetLogVerbosityLevel -> Sem r (Error ∪ LogVerbosityLevel)
getLogVerbosityLevel = GetLogVerbosityLevel -> Sem r (Error ∪ LogVerbosityLevel)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns list of available TDLib internal log tags, for example, ["actor", "binlog", "connections", "notifications", "proxy"]. This is an offline method. Can be called before authorization. Can be called synchronously
getLogTags :: Member TDLib r => GetLogTags -> Sem r (Error  LogTags)
getLogTags :: GetLogTags -> Sem r (Error ∪ LogTags)
getLogTags = GetLogTags -> Sem r (Error ∪ LogTags)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sets the verbosity level for a specified TDLib internal log tag. This is an offline method. Can be called before authorization. Can be called synchronously
setLogTagVerbosityLevel :: Member TDLib r => SetLogTagVerbosityLevel -> Sem r (Error  Ok)
setLogTagVerbosityLevel :: SetLogTagVerbosityLevel -> Sem r (Error ∪ Ok)
setLogTagVerbosityLevel = SetLogTagVerbosityLevel -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns current verbosity level for a specified TDLib internal log tag. This is an offline method. Can be called before authorization. Can be called synchronously
getLogTagVerbosityLevel :: Member TDLib r => GetLogTagVerbosityLevel -> Sem r (Error  LogVerbosityLevel)
getLogTagVerbosityLevel :: GetLogTagVerbosityLevel -> Sem r (Error ∪ LogVerbosityLevel)
getLogTagVerbosityLevel = GetLogTagVerbosityLevel -> Sem r (Error ∪ LogVerbosityLevel)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Adds a message to TDLib internal log. This is an offline method. Can be called before authorization. Can be called synchronously
addLogMessage :: Member TDLib r => AddLogMessage -> Sem r (Error  Ok)
addLogMessage :: AddLogMessage -> Sem r (Error ∪ Ok)
addLogMessage = AddLogMessage -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Does nothing; for testing only. This is an offline method. Can be called before authorization
testCallEmpty :: Member TDLib r => TestCallEmpty -> Sem r (Error  Ok)
testCallEmpty :: TestCallEmpty -> Sem r (Error ∪ Ok)
testCallEmpty = TestCallEmpty -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the received string; for testing only. This is an offline method. Can be called before authorization
testCallString :: Member TDLib r => TestCallString -> Sem r (Error  TestString)
testCallString :: TestCallString -> Sem r (Error ∪ TestString)
testCallString = TestCallString -> Sem r (Error ∪ TestString)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the received bytes; for testing only. This is an offline method. Can be called before authorization
testCallBytes :: Member TDLib r => TestCallBytes -> Sem r (Error  TestBytes)
testCallBytes :: TestCallBytes -> Sem r (Error ∪ TestBytes)
testCallBytes = TestCallBytes -> Sem r (Error ∪ TestBytes)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the received vector of numbers; for testing only. This is an offline method. Can be called before authorization
testCallVectorInt :: Member TDLib r => TestCallVectorInt -> Sem r (Error  TestVectorInt)
testCallVectorInt :: TestCallVectorInt -> Sem r (Error ∪ TestVectorInt)
testCallVectorInt = TestCallVectorInt -> Sem r (Error ∪ TestVectorInt)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the received vector of objects containing a number; for testing only. This is an offline method. Can be called before authorization
testCallVectorIntObject :: Member TDLib r => TestCallVectorIntObject -> Sem r (Error  TestVectorIntObject)
testCallVectorIntObject :: TestCallVectorIntObject -> Sem r (Error ∪ TestVectorIntObject)
testCallVectorIntObject = TestCallVectorIntObject -> Sem r (Error ∪ TestVectorIntObject)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the received vector of strings; for testing only. This is an offline method. Can be called before authorization
testCallVectorString :: Member TDLib r => TestCallVectorString -> Sem r (Error  TestVectorString)
testCallVectorString :: TestCallVectorString -> Sem r (Error ∪ TestVectorString)
testCallVectorString = TestCallVectorString -> Sem r (Error ∪ TestVectorString)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the received vector of objects containing a string; for testing only. This is an offline method. Can be called before authorization
testCallVectorStringObject :: Member TDLib r => TestCallVectorStringObject -> Sem r (Error  TestVectorStringObject)
testCallVectorStringObject :: TestCallVectorStringObject
-> Sem r (Error ∪ TestVectorStringObject)
testCallVectorStringObject = TestCallVectorStringObject
-> Sem r (Error ∪ TestVectorStringObject)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the squared received number; for testing only. This is an offline method. Can be called before authorization
testSquareInt :: Member TDLib r => TestSquareInt -> Sem r (Error  TestInt)
testSquareInt :: TestSquareInt -> Sem r (Error ∪ TestInt)
testSquareInt = TestSquareInt -> Sem r (Error ∪ TestInt)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a simple network request to the Telegram servers; for testing only. Can be called before authorization
testNetwork :: Member TDLib r => TestNetwork -> Sem r (Error  Ok)
testNetwork :: TestNetwork -> Sem r (Error ∪ Ok)
testNetwork = TestNetwork -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Sends a simple network request to the Telegram servers via proxy; for testing only. Can be called before authorization
testProxy :: Member TDLib r => TestProxy -> Sem r (Error  Ok)
testProxy :: TestProxy -> Sem r (Error ∪ Ok)
testProxy = TestProxy -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Forces an updates.getDifference call to the Telegram servers; for testing only
testGetDifference :: Member TDLib r => TestGetDifference -> Sem r (Error  Ok)
testGetDifference :: TestGetDifference -> Sem r (Error ∪ Ok)
testGetDifference = TestGetDifference -> Sem r (Error ∪ Ok)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Does nothing and ensures that the Update object is used; for testing only. This is an offline method. Can be called before authorization
testUseUpdate :: Member TDLib r => TestUseUpdate -> Sem r (Error  Update)
testUseUpdate :: TestUseUpdate -> Sem r (Error ∪ Update)
testUseUpdate = TestUseUpdate -> Sem r (Error ∪ Update)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd

-- | Returns the specified error and ensures that the Error object is used; for testing only. This is an offline method. Can be called before authorization. Can be called synchronously
testReturnError :: Member TDLib r => TestReturnError -> Sem r (Error  Error)
testReturnError :: TestReturnError -> Sem r (Error ∪ Error)
testReturnError = TestReturnError -> Sem r (Error ∪ Error)
forall cmd res (r :: [(* -> *) -> * -> *]).
(ToJSON cmd, FromJSON res, Member TDLib r) =>
cmd -> Sem r res
runCmd